我正在尝试运行Sequelize,但在UUID模块中出现以下导出错误:
文件:/uuid/dist/esm-browser/index.js:1
export { default as v1 } from './v1.js';
^^^^^^
SyntaxError: Unexpected token 'export'
如何正确解决这个问题?我正在使用node
我正在尝试运行Sequelize,但在UUID模块中出现以下导出错误:
文件:/uuid/dist/esm-browser/index.js:1
export { default as v1 } from './v1.js';
^^^^^^
SyntaxError: Unexpected token 'export'
如何正确解决这个问题?我正在使用node
这是一个有关于https://github.com/uuidjs/uuid/包的问题,他们不支持奇数版本的Node https://github.com/uuidjs/uuid/issues/466。
请升级你的Node版本。我现在使用的是14.4.0版本,可以正常工作。
如果您在项目中使用sequelize模块,并在启动项目时遇到了这个错误,那么您需要注意以下内容。该错误不仅会在使用sequelize时发生,而且会在使用基于commonJS的项目中同时使用现代ES6的模块(例如UUID节点模块)时发生。
export { default as v1 } from './v1.js';
^^^^^^
SyntaxError: Unexpected token 'export'
在你的项目根目录中,我在将我的应用部署到Digital Ocean时遇到了这个错误,我使用的是最新的nodejs版本v14。
npm install --save-dev @babel/core @babel/cli @babel/preset-env @babel/node
{
"presets": [
"@babel/preset-env"
]
}
"start" : "node --exec babel-node index.js"
"start" : "nodemon --exec babel-node index.js"
也许现在给出解决方案有点晚了,但我曾经为此问题苦苦挣扎,之前的解决方案对我都不起作用。问题是Node在没有读取由Babel转换的代码的情况下触发Sequelize。
为了解决这个问题,只需按以下方式修复脚本。我没有在package.json中使用"type": "module"
,我更喜欢使用Babel来启动服务器。
"scripts": {
"build": "babel src -d dist",
"dev": "nodemon --exec babel-node ./src/index.js",
"start": "yarn run build && node dist/index.js",
"test": "nyc --reporter=text mocha --config=test/.mocharc.json",
"test:watch": "mocha --config=test/.mocharc.json -- --watch",
"sequelize": "babel-node node_modules/.bin/sequelize $*",
"db:drop": "dropdb --if-exists ${POSTGRES_DB}",
"db:create": "createdb ${POSTGRES_DB}",
"db:migrate": "yarn sequelize db:migrate",
"db:rollback": "yarn sequelize db:migrate:undo"
},
sequelize
通过babel-node
读取node_modules/.bin/sequelize $*
。