首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >执行NPM脚本时的SyntaxError

执行NPM脚本时的SyntaxError
EN

Stack Overflow用户
提问于 2019-05-08 15:26:31
回答 2查看 277关注 0票数 0

我正在尝试更新一个React应用程序的依赖项。这个应用程序包括一个在package.json中定义的脚本,它为每个地区生成一个消息包。

代码语言:javascript
复制
"scripts": {
  "build:langs": "NODE_ENV=production babel-node scripts/mergeMessages.js"
}

脚本的细节并不重要,但它非常类似于这一个,它在react intl教程中进行了描述。

在升级依赖项之前,脚本工作正常,但是现在当我在命令行上执行npm run build:langs时,我得到了以下错误:

代码语言:javascript
复制
/applications/my-app/scripts/mergeMessages.js:1
import _objectSpread from "/applications/my-app/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread";
       ^^^^^^^^^^^^^

SyntaxError: Unexpected identifier
    at Module._compile (internal/modules/cjs/loader.js:703:23)
    at Module._compile (/applications/my-app/node_modules/pirates/lib/index.js:99:24)
    at Module._extensions..js (internal/modules/cjs/loader.js:770:10)
    at Object.newLoader [as .js] (/applications/my-app/node_modules/pirates/lib/index.js:104:7)
    at Module.load (internal/modules/cjs/loader.js:628:32)
    at Function.Module._load (internal/modules/cjs/loader.js:555:12)
    at Function.Module.runMain (internal/modules/cjs/loader.js:824:10)
    at Object.<anonymous> (/applications/my-app/node_modules/@babel/node/lib/_babel-node.js:234:23)
    at Module._compile (internal/modules/cjs/loader.js:759:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:770:10)

我想巴贝尔依赖关系是最相关的。在升级之前,这些是:

代码语言:javascript
复制
"babel-core": "6.26.0",
"babel-eslint": "7.2.3",
"babel-loader": "7.1.2",
"babel-plugin-react-intl": "2.4.0",
"babel-preset-react-app": "3.1.2",
"babel-cli": "6.26.0",

升级之后,babel依赖项如下:

代码语言:javascript
复制
"@babel/core": "7.4.4",
"@babel/polyfill": "7.4.4",
"@babel/register": "7.4.4",
"babel-eslint": "10.0.1",
"babel-loader": "8.0.5",
"babel-plugin-named-asset-import": "^0.3.2",
"babel-preset-react-app": "^8.0.0",
"babel-plugin-react-intl": "2.4.0",
"@babel/cli": "~7.4.4",
"@babel/node": "7.2.2",

更新

我没有.babelrcbabel.config.js配置文件,只是在package.json中有以下内容

代码语言:javascript
复制
"babel": {
  "presets": [
    "react-app"
  ]
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-08 16:14:43

如果您正在使用babel-7,您需要有以下内容:

尝试使用@babel/preset-react而不是babel-preset-react-app

代码语言:javascript
复制
"@babel/core": "^7.4.4",
"@babel/plugin-proposal-class-properties": "^7.4.4",
"@babel/preset-env": "^7.4.4",
"@babel/preset-react": "^7.0.0",
"babel-loader": "^8.0.5",

package.json中的babel-config应该是:

代码语言:javascript
复制
{
  "presets": [
    "@babel/preset-env",
    "@babel/preset-react"
  ],
  "plugins": [
    "@babel/plugin-proposal-class-properties"
  ]
}
票数 1
EN

Stack Overflow用户

发布于 2019-05-08 15:36:49

来自Babel 7移徙指南

Babel 6中的babel-node命令是babel-cli包的一部分。在Babel 7中,这个命令被拆分到自己的@babel/node包中,所以如果使用该命令,就需要添加这个新的依赖项。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56044153

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档