【问题标题】:Babel Unexpected Token Export After Compile编译后 Babel 意外令牌导出
【发布时间】:2020-03-02 15:25:24
【问题描述】:

我使用 ES6 语法创建了一个项目。

我正在使用 Babel 将 ES6 语法 JavaScript 文件编译为 Node.js 可以运行的版本。

但是,当我尝试使用 node lib/index.js 执行我认为由 babel 编译的文件 (index.js) 时。我收到以下错误:SyntaxError: Unexpected token export

我运行以下command to compile 我的项目:./node_modules/.bin/babel src -d libsrc 包含我用 ES6 编写的所有文件。

成功编译目录,提示:Successfully compiled 15 files with Babel.

所以,我不确定为什么我无法运行已编译的文件。这也是我第一次使用 babel,所以我可能错过了一些东西。

我有以下我认为对 babel 很重要的文件:

.babelrc

{
    "presets": ["@babel/preset-env"]
}

package.json - 开发依赖

"devDependencies": {
    "@babel/cli": "^7.8.4",
    "@babel/core": "^7.8.6",
    "@babel/polyfill": "^7.8.3",
    "@babel/preset-env": "^7.8.6",
    "@babel/register": "^7.8.6",
    "babel-loader": "^8.0.6"
}

详细的错误信息:

/Users/c/Projects/Project1/src/credentials.js:10
export default Credentials;
^^^^^^

SyntaxError: Unexpected token export
    at Module._compile (internal/modules/cjs/loader.js:723:23)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Module.require (internal/modules/cjs/loader.js:692:17)
    at require (internal/modules/cjs/helpers.js:25:18)
    at Object.<anonymous> (/Users/c/Projects/Project1/lib/index.js:3:53)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)

它看起来像在 lib/index.js 中,它使用以下行引用 ES6 文件:

var _credentials = _interopRequireDefault(require("../src/credentials"));

【问题讨论】:

    标签: javascript node.js ecmascript-6 babeljs


    【解决方案1】:

    在本地环境中,只需安装这些包即可。

    npm install @babel/core @babel/node --save-dev
    

    然后在你的 package.json 中。

    "scripts": {
        "start": "node --exec babel-node src/index.js"
      }
    

    和 .babelrc 一样,你已经有了。 它应该可以工作。

    【讨论】:

    • 我看到您提供的解决方案的唯一问题是当我开始部署到生产环境时。根据 babel 的文档,我不应该在生产中使用 @babel/node。 babeljs.io/docs/en/next/babel-node.html
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-08
    • 1970-01-01
    • 1970-01-01
    • 2020-11-16
    • 2016-07-01
    • 2016-02-09
    相关资源
    最近更新 更多