【问题标题】:Babel transpilation reserved keyword 'package' error on HerokuHeroku 上的 Babel 转译保留关键字“包”错误
【发布时间】:2023-03-24 18:37:01
【问题描述】:

我正在使用 Babel 在服务器端开发 MERN 堆栈应用程序,以便我可以编写 ES6。当我尝试部署到 Heroku 时出现错误:“意外的保留字 'package'”

我的 Heroku 相关脚本:

{
  "build": "babel . -d build --ignore ./client,node_modules",
  "heroku-postbuild": "YARN_PRODUCTION=false yarn build && yarn --cwd client install && yarn --cwd client build"
}

完整的错误信息:

remote: SyntaxError: /tmp/build_92b72922d4bd2872f60dec7f1e038c5d/.heroku/node/lib/node_modules/npm/node_modules/init-package-json/default-input.js: Unexpected reserved word 'package' (48:11)
remote: 
remote:   46 | }}
remote:   47 | 
remote: > 48 | var name = package.name || basename
remote:      |            ^
remote:   49 | var spec
remote:   50 | try {
remote:   51 |   spec = npa(name)
remote:     at Object._raise (/tmp/build_92b72922d4bd2872f60dec7f1e038c5d/node_modules/@babel/parser/lib/index.js:757:17)
remote:     at Object.raiseWithData (/tmp/build_92b72922d4bd2872f60dec7f1e038c5d/node_modules/@babel/parser/lib/index.js:750:17)
remote:     at Object.raise (/tmp/build_92b72922d4bd2872f60dec7f1e038c5d/node_modules/@babel/parser/lib/index.js:744:17)
remote:     at Object.checkReservedWord (/tmp/build_92b72922d4bd2872f60dec7f1e038c5d/node_modules/@babel/parser/lib/index.js:10916:14)
remote:     at Object.parseIdentifierName (/tmp/build_92b72922d4bd2872f60dec7f1e038c5d/node_modules/@babel/parser/lib/index.js:10876:12)
remote:     at Object.parseIdentifier (/tmp/build_92b72922d4bd2872f60dec7f1e038c5d/node_modules/@babel/parser/lib/index.js:10847:23)
remote:     at Object.parseExprAtom (/tmp/build_92b72922d4bd2872f60dec7f1e038c5d/node_modules/@babel/parser/lib/index.js:9958:27)
remote:     at Object.parseExprAtom (/tmp/build_92b72922d4bd2872f60dec7f1e038c5d/node_modules/@babel/parser/lib/index.js:4648:20)
remote:     at Object.parseExprSubscripts (/tmp/build_92b72922d4bd2872f60dec7f1e038c5d/node_modules/@babel/parser/lib/index.js:9688:23)
remote:     at Object.parseMaybeUnary (/tmp/build_92b72922d4bd2872f60dec7f1e038c5d/node_modules/@babel/parser/lib/index.js:9668:21) {
remote:   loc: Position { line: 48, column: 11 },
remote:   pos: 1484,
remote:   code: 'BABEL_PARSE_ERROR'
remote: }

需要注意的几点:

  • 我不得不将 node_modules 添加到 Babel 忽略(但我不确定这是否是一个好主意),因为它给了我一个 Unexpected token 错误:

    import * as $protobuf from $DEPENDENCY;` // On the `$` of "$DEPENDENCY"
    
  • 我以为我不想转译客户端文件夹,因为 React 有自己的构建脚本(默认)

  • 我的 babel 配置:

    module.exports = {
        presets: ["@babel/preset-env", "@babel/preset-react"],
        plugins: ["@babel/plugin-proposal-class-properties"]
    };
    
    
  • 我的文件夹结构:

【问题讨论】:

    标签: node.js express heroku babeljs mern


    【解决方案1】:

    找到了解决办法:

    我只需将每个与服务器相关的文件/文件夹放入其自己的目录并根据需要更新 babel 转译脚本

    【讨论】:

      猜你喜欢
      • 2017-02-08
      • 2020-01-22
      • 1970-01-01
      • 2012-01-24
      • 2017-04-10
      • 1970-01-01
      • 2017-07-31
      • 2012-09-14
      • 1970-01-01
      相关资源
      最近更新 更多