执行npm run serve报错:无法解析Null Safety语法,需配置loader
解决
npm run serve中PrimeVue ?.语法编译错误 方案1:回退PrimeVue到兼容版本
- 打开项目根目录的
package.json,查看primevue的版本号,如果是带^/~的版本范围(比如^3.29.0),说明依赖自动升级到了包含ES2020语法的新版本 - 将版本号改为之前能正常运行的固定值(比如
3.28.0),执行npm install后重启服务
方案2:配置编译工具转译PrimeVue
默认编译规则会跳过node_modules下的文件转译,而新版PrimeVue使用了未转译的ES2020语法,所以需要手动指定转译该依赖:
Vue CLI项目(大概率你的场景)
在项目根目录新建/修改vue.config.js:
module.exports = { transpileDependencies: ['primevue'] }
保存后重新执行npm run serve即可。
纯Babel配置场景
修改babel.config.js,把PrimeVue加入转译列表:
module.exports = { presets: ['@babel/preset-env'], // 替换成你实际使用的preset,比如Vue的@vue/cli-plugin-babel/preset include: [ /node_modules\/primevue/, ] }
问题根源
之前项目正常是因为当时使用的PrimeVue版本没有用到?.这类ES2020语法,后续执行npm install时,版本范围配置导致依赖自动升级,引入了未被项目编译工具处理的新语法,进而触发编译错误。
内容的提问来源于stack exchange,提问作者IcyHerrscher
相关产品推荐
相关产品推荐

