Quasar项目执行quasar dev编译失败,出现SyntaxError语法错误
解决Quasar项目
quasar dev编译时graphql依赖语法错误问题 问题核心
重启搁置的Quasar项目后执行quasar dev,出现语法错误:SyntaxError: Unexpected string,根源是graphql依赖的jsutils模块中,globalThis.process.env.NODE_ENV被错误替换为globalThis."development",导致语法非法。
解决方案
1. 修正Vite环境变量替换规则
Quasar默认使用Vite构建,检查quasar.config.js中的Vite配置,确保process.env.NODE_ENV的替换逻辑正确,避免盲目替换process或process.env整个对象:
// quasar.config.js module.exports = function (/* ctx */) { return { // ...其他配置 build: { extendViteConf(viteConf) { viteConf.define = viteConf.define || {}; // 正确替换process.env.NODE_ENV为当前环境值 viteConf.define['process.env.NODE_ENV'] = JSON.stringify(process.env.NODE_ENV || 'development'); // 删除可能存在的错误全局替换规则 delete viteConf.define['process']; delete viteConf.define['process.env']; } } }; };
2. 锁定graphql依赖版本
搁置项目期间依赖可能自动更新,导致与Quasar/Vite构建逻辑不兼容。在package.json中锁定graphql的具体版本(比如你之前项目正常运行时的版本),然后执行:
rm -rf node_modules package-lock.json # 或 yarn.lock npm install # 或 yarn install
3. 彻底清理构建缓存
除了常规清理,还要清理Vite的缓存目录:
quasar clean rm -rf node_modules/.vite
4. 检查残留插件配置
即使卸载了unplugin-auto-import,也要确保quasar.config.js中没有残留的该插件配置代码,避免影响构建逻辑。
内容的提问来源于stack exchange,提问作者mainstreetmark
相关产品推荐
相关产品推荐

