NextJS 13报错:Module parse failed: Unexpected token 求助
解决NextJS 13中@mapbox/node-pre-gyp的HTML文件解析错误
问题原因
webpack默认不会处理node_modules目录下的HTML文件,你的项目依赖中@mapbox/node-pre-gyp包里的index.html被意外触发解析,因缺少对应loader导致报错。
解决方案1:用ignore-loader忽略该文件
- 安装依赖:
npm install ignore-loader --save-dev # 或使用yarn yarn add ignore-loader -D
- 修改
next.config.js添加webpack规则:
/** @type {import('next').NextConfig} */ const nextConfig = { webpack: (config) => { config.module.rules.push({ test: /\.html$/, include: /node_modules\/@mapbox\/node-pre-gyp/, use: 'ignore-loader' }); return config; }, }; module.exports = nextConfig;
解决方案2:直接排除该包的JS解析
若不想额外安装loader,可修改webpack配置让JS解析规则跳过@mapbox/node-pre-gyp目录:
/** @type {import('next').NextConfig} */ const nextConfig = { webpack: (config) => { config.module.rules.forEach(rule => { if (rule.test.toString().includes('jsx|js')) { rule.exclude.push(/node_modules\/@mapbox\/node-pre-gyp/); } }); return config; }, }; module.exports = nextConfig;
验证
修改配置后重启开发服务器,即可解决该解析错误。
内容的提问来源于stack exchange,提问作者PhanHuy
相关产品推荐
相关产品推荐

