使用vue-cli构建项目遇“couldn't infer parser”错误求助
yarn serve时模板编译报错 我在使用vue-cli构建新webpack项目时反复遭遇报错。我遵循最新版本(3.0.0-beta.11)的文档操作,也尝试过非beta的旧版本。执行yarn serve启动开发服务器并构建项目时失败,报错信息如下:
error in ./src/App.vue?vue&type=template&id=7ba5bd90 Module build failed: Error: No parser and no file path given, couldn't infer a parser. at normalize (/Users/cory/Code/chickadee/my-project/node_modules/prettier/index.js:7051:13) at formatWithCursor (/Users/cory/Code/chickadee/my-project/node_modules/prettier/index.js:10370:12) at /Users/cory/Code/chickadee/my-project/node_modules/prettier/index.js:31115:15 at Object.format (/Users/cory/Code/chickadee/my-project/node_modules/prettier/index.js:31134:12) at actuallyCompile (/Users/cory/Code/chickadee/my-project/node_modules/@vue/component-compiler-utils/dist/compileTemplate.js:93:29) at compileTemplate (/Users/cory/Code/chickadee/my-project/node_modules/@vue/component-compiler-utils/dist/compileTemplate.js:26:16) at Object.module.exports (/Users/cory/Code/chickadee/my-project/node_modules/vue-loader/lib/loaders/templateLoader.js:42:20) @ ./src/App.vue?vue&type=template&id=7ba5bd90 1:0-194 1:0-194 @ ./src/App.vue @ ./src/main.js @ multi (webpack)-dev-server/client/index.js (webpack)/hot/dev-server.js ./src/main.js
我的环境配置:
- Mac OS
- node v8.5.0
- 使用yarn安装依赖包
已尝试的解决措施:
- 使用不同版本的vue-cli创建新项目,项目可生成并安装模块
- 尝试移除prettier模块,但报错仍出现
- 尝试重新安装所有依赖包
请问还有哪些方法可以解决该错误?
我来帮你分析下这个问题——从报错信息来看,核心是prettier在处理Vue模板时无法自动推断出合适的解析器,哪怕你手动移除了prettier,可能是vue-cli依赖链里的相关工具仍在调用它。试试下面这些针对性的解决方法:
1. 给prettier明确指定Vue解析器
在项目根目录新建一个.prettierrc配置文件,写入以下内容:
{ "parser": "vue" }
这样prettier处理Vue模板时会直接使用指定的解析器,不会再尝试自动推断,从根源上解决这个报错。
2. 降级prettier到兼容版本
你当前使用的prettier版本大概率和vue-cli 3.x beta版的组件编译工具存在兼容性冲突。试试把prettier降级到稳定兼容的1.18.2版本:
yarn add prettier@1.18.2 --dev
这个版本和vue-cli 3.x的适配性经过验证,能有效避免解析器相关的问题。
3. 创建项目时禁用prettier
如果你用的是官方模板创建项目,下次创建时可以选择不启用prettier功能:
在交互式创建流程中,当问到“Use prettier to format code?”时选择No,这样项目不会集成prettier,也就不会触发这个报错了。
4. 升级Node.js版本
你的Node版本是v8.5.0,确实有点旧了——vue-cli 3.x官方推荐的Node版本是v8.9及以上。旧版本Node可能会导致依赖包之间出现奇怪的兼容性问题,建议升级到最新的LTS版本(比如v16.x或v18.x),再重新尝试构建项目。
5. 彻底清理依赖后重装
有时候缓存的依赖文件会导致版本不匹配或损坏,执行以下命令彻底清理后重新安装:
yarn cache clean rm -rf node_modules rm yarn.lock yarn install
这样能确保所有依赖都是全新拉取的,避免缓存带来的问题。
可以按顺序尝试这些方法,应该能解决你遇到的报错。
内容的提问来源于stack exchange,提问作者counterbeing

