Node.js报错SyntaxError: Unexpected token import的解决求助
解决Node.js运行时
SyntaxError: Unexpected token import的问题 这个错误很常见——Node.js默认不支持ES6的import/export模块语法,它原生使用的是CommonJS规范(require/module.exports)。而你用webpack-dev-server能正常运行,是因为webpack在构建流程中已经把ES6模块语法转译成了环境可识别的代码。
下面给你几种针对性的解决方案:
方案1:让Node.js直接支持ES模块
如果你确实需要直接用node app.js运行你的文件,可以通过以下两种方式开启ES模块支持:
- 方式A:修改文件后缀或配置package.json
- 把你的
app.js后缀改成.mjs,然后运行node app.mjs; - 或者在项目根目录的
package.json中添加"type": "module"字段,这样所有.js文件都会被Node当作ES模块处理,之后直接运行node app.js即可。
- 把你的
- 方式B:用Babel转译ES6代码
安装必要的Babel依赖:
然后在项目根目录创建npm install --save-dev @babel/core @babel/node @babel/preset-env.babelrc配置文件:
最后用Babel Node来运行你的文件:{ "presets": ["@babel/preset-env"] }npx babel-node app.js
方案2:继续使用Webpack的工作流
既然你的项目原本通过webpack-dev-server能正常运行和构建,那其实更推荐你沿用这个流程:
- 开发阶段:继续执行
node_modules/.bin/webpack-dev-server启动开发服务器,它会帮你处理模块转译、热重载等工作; - 生产构建:运行webpack打包命令(比如
npx webpack --mode production),生成打包后的文件(通常在dist目录下),之后可以用node dist/[你的打包文件名].js运行生产环境代码。
内容的提问来源于stack exchange,提问作者Blake Eram
相关产品推荐
相关产品推荐

