Node.js 遇到;不能';t推断解析器“;使用vue cli时出错
尝试使用Node.js 遇到;不能';t推断解析器“;使用vue cli时出错,node.js,webpack,vue.js,vue-cli,prettier,Node.js,Webpack,Vue.js,Vue Cli,Prettier,尝试使用vue cli构建新的网页包项目时,我反复遇到错误。我正在关注最新版本(3.0.0-beta.11)的文档,也尝试了早期版本(不是beta版) 当我运行时,它试图启动开发服务器并构建项目,但在此处失败: 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 pa
vue cli
构建新的网页包项目时,我反复遇到错误。我正在关注最新版本(3.0.0-beta.11)的文档,也尝试了早期版本(不是beta版)
当我运行时,它试图启动开发服务器并构建项目,但在此处失败:
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
关于我的设置
- 苹果操作系统
- 我正在运行节点v8.5.0
- 软件包与
纱线一起安装
我尝试过的事情
- 使用不同版本的
vue cli
生成新项目。这些项目生成并安装模块
- 尝试删除
更漂亮的模块,但似乎仍然出现错误
- 已尝试重新安装所有模块
我还可以尝试哪些方法克服此错误?已知问题,它将出现在下一版本的vue cli中
在prettier 1.13.0中,默认解析器被删除,并带有一个次要版本(以前是babylon)
问题:
在更漂亮的回购中发行:
很抱歉,我们犯了由来已久的semver sin-我们知道这是一个突破性的改变,但因为它只会影响我们的一部分用户,我们没有碰撞主要版本,因为我们不想为我们的用户升级制造摩擦
要获得旧的行为,请添加解析器:“巴比伦”
您可能还希望将prettier锁定到包中的特定版本。json
从项目中删除当前的节点\u modules
文件夹,将中的“prettier”:“^1.12.1”
添加到包中。json
并运行npm安装
解决了此问题
另一个选项是运行npm安装prettier@1.12.1
之前不移除节点\u模块
文件夹
更新:
对于某些用户,verion 1.12.1不起作用
@Kivin提出了另一个解决方案,可以在这里找到:运行npm安装prettier@1.12.1
帮我解决了这个问题。谢谢你 正如各种原因已经指出的那样,您可能需要回滚更漂亮软件包的版本
在package.json文件中,您可能需要强制npm使用一个版本(即删除hat^)
我的看起来像这样
"devDependencies": {
"prettier": "1.12.1",
"typescript": "^2.6.1",
"vue": "^2.5.16",
"vue-styleguidist": "^1.4.4",
"vue-webpack-loaders": "^1.0.6",
"webpack": "^3.1.0"
现在,我尝试了所有的选择…下载和升级更漂亮的…但都没有成功。直到我仔细研究了发生的事情。
显然,更漂亮的团队删除了默认的解析器,babylon
,这样做……打破了互联网
只是开玩笑
根据他们的说法,最简单的解决方案是简单地重新添加解析器。
这已经被Vue团队所接受,预计将随最新的修复版本一起发布。
如果您使用的是Vue Loader/Thread,请不要费心尝试所有建议……我都试过了。
给我修的是…去
node\u modules\vue loader\lib\template compiler
…打开index.js
并查找
//美化渲染fn
如果(!i生产){
code=prettier.format(代码,{semi:false})
}
并将行更改为:
// prettify render fn
if (!isProduction) {
code = prettier.format(code, { semi: false, parser: 'babylon' })
}
就这样!
然后,一旦问题得到解决,一切都将回滚,您仍然会很好
尝试此操作……它将为您节省无数分钟的搜索时间……每次安装当前vue cli版本后,您都需要这样做,然后在vue cli更新后将其从依赖项中删除。我不确定原因,但我尝试使用Thread
将其降级到1.2.1
,但它似乎不起作用。真正起作用的是npm安装--save devprettier@1.12.1
。但是看起来你在做同样的事情,只是简单地更换了所有的模块。确认你做了什么,也没有运气!!!等待此PR: