Node.js:尝试运行生产构建会出现此错误:从"../../core-js/promise"导入_Promise;语法错误:意外的标识符



我有一个快乐的.js后端,有一个Vue前端(使用Vue CLI(。我在 Ubuntu 12.10.0 上使用 Node 版本 16.04。

在开发模式下一切正常。当我通过构建过程运行我的应用程序时,它会生成没有任何错误。当我尝试在生产环境中运行我的应用程序时,就会出现问题。这些是我的 NPM 脚本:

"scripts": {
"dev": "npm-run-all --parallel dev:vue dev:hapi",
"dev:vue": "vue-cli-service serve",
"dev:hapi": "NODE_ENV=development node-dev --no-notify src/server/server.js --exec babel-node",
"build": "npm-run-all --serial build:vue build:hapi",
"build:vue": "vue-cli-service build",
"build:hapi": "NODE_ENV=production babel src/server --out-dir dist/server --copy-files",
"prod": "NODE_ENV=production node dist/server/server.js",
...
}

运行npm run prod后,我在终端中收到此错误:

/path/to/node_modules/@babel/runtime-corejs2/helpers/esm/asyncToGenerator.js:1
import _Promise from "../../core-js/promise";
^^^^^^^^
SyntaxError: Unexpected identifier

这是我babel.config.js文件:

module.exports = {
presets: [
"@vue/app",
"@babel/preset-env",
],
plugins: [
["@babel/plugin-transform-runtime", {
corejs: 2,
}]
]
};

我认为@babel/plugin-transform-runtime插件应该可以处理我在 Promise 方面可能遇到的任何问题。显然,Node v12 应该支持开箱即用的承诺,但我显然仍然遇到问题。

有谁知道这种情况发生了什么以及我可以做些什么来解决它?

谢谢!

我终于找到了答案。我不得不更改babel.config.js文件中的配置。我包含了 babelenv选项,并为客户端和服务器定义了单独的配置。这是我的babel.config.js文件现在的样子:

module.exports = {
env: {
client: {
presets: [
"@vue/app",
]
},
server: {
presets: [
"@babel/preset-env",
],
plugins: [
["@babel/plugin-transform-runtime", {
corejs: 2,
}]
]
}
}
};

相关内容

最新更新