部署js-solar-potential Node.js应用遇SyntaxError报错求助
解决Node.js部署js-solar-potential应用的ES模块语法错误
错误原因
报错SyntaxError: Unexpected token {是因为Node.js默认以CommonJS模块系统加载文件,而build产物中使用了ES模块的import语法,当前服务器环境未正确识别该格式。
解决方案
1. 为build目录添加模块类型配置
在生成的build文件夹里新建package.json文件,写入以下内容:
{ "type": "module" }
这个配置会让Node.js将该目录下的所有.js文件当作ES模块处理,从而支持import/export语法。
2. 升级服务器Node.js版本
ES模块的默认支持从Node.js 14.13.0开始,错误日志显示当前环境使用的是旧版CommonJS加载器,版本不兼容。通过o2switch的控制面板切换到Node.js 14.13.0及以上版本(推荐18.x LTS长期支持版本)。
3. 验证项目build配置(可选)
如果上述方法无效,检查项目根目录的package.json中的build命令,确认构建工具是否输出兼容格式。以Vite为例,可修改vite.config.js强制输出CommonJS格式:
export default { build: { outDir: 'build', lib: { entry: './src/index.js', format: 'cjs' } } }
修改后重新执行npm run build,再部署新的build产物。
4. 确认启动路径配置
确保o2switch的Node.js配置中,启动文件路径正确指向build/index.js,避免误指向根目录的其他文件。
内容的提问来源于stack exchange,提问作者Cyril Koumbin
相关产品推荐
相关产品推荐

