模块构建失败:错误:没有给出解析器和文件路径,无法在 nuxtjs 中推断出解析器
Posted
技术标签:
【中文标题】模块构建失败:错误:没有给出解析器和文件路径,无法在 nuxtjs 中推断出解析器【英文标题】:Module build failed: Error: No parser and no file path given, couldn't infer a parser in nuxtjs 【发布时间】:2018-11-06 18:26:58 【问题描述】: Module build failed: Error: No parser and no file path given, couldn't infer a parser.
at normalize (/home/nayan/dd_pwa/node_modules/prettier/index.js:7051:13)
at formatWithCursor (/home/nayan/dd_pwa/node_modules/prettier/index.js:10370:12)
at /home/nayan/dd_pwa/node_modules/prettier/index.js:31115:15
at Object.format (/home/nayan/dd_pwa/node_modules/prettier/index.js:31134:12)
at Object.module.exports (/home/nayan/dd_pwa/node_modules/vue-loader/lib/template-compiler/index.js:80:23)
@ ./layouts/error.vue 7:0-368
@ ./.nuxt/index.js
@ ./.nuxt/client.js
@ multi webpack-hot-middleware/client?name=client&reload=true&timeout=30000&path=/__webpack_hmr ./.nuxt/client.js
我在 Nuxtjs 上有 same issue。有人遇到同样的问题???帮助?!! 版本: "nuxt": "^1.0.0", “更漂亮”:“^1.12.1”
尝试了所有降级和升级更漂亮版本的选项。
【问题讨论】:
https://***.com/questions/50555953/vue-webpack-template-missing-parser 已经尝试降级和升级更漂亮的版本。没用 【参考方案1】:更新: 我在下面的评论中提到了这一点,但由于某种原因,人们仍然指的是同一件事。
请注意,这是一个 hack... 一个临时的。但它适用于希望立即完成工作的人......在等待永久修复程序发布时。您可能已经猜到了…… PR 已经提交并且已经被合并。这意味着在下一个版本中将进行修复。与此同时......这会做。是的,当该版本发布时,它将覆盖此 hack,而这一切似乎都不会发生。干杯
甚至不必费心降级。
这是一个小问题。
我给了解释和what worked for me here:
简而言之:
去:
node_modules\vue-loader\lib\template-compiler
...打开 index.js
并寻找
// prettify render fn
if (!isProduction)
code = prettier.format(code, semi: false)
并将这些行更改为:
// prettify render fn
if (!isProduction)
code = prettier.format(code, semi: false, parser: 'babylon' )
就是这样!
【讨论】:
但这是临时修复,降级肯定更安全吗? 这只是一个hack而不是修复。 正如我已经提到的在 Nuxtjs 中无法使用更漂亮的版本的降级和升级。所以这是一个临时修复工作。 这是一个技巧,而不是一个长期可行的解决方案。 现在改用parser: 'babel'
【参考方案2】:
将prettier
包降级到版本 1.12.1 并坚持使用它:
npm i prettier@1.12.1 --save-dev --save-exact
【讨论】:
【参考方案3】:这里有一个 sed one-liner 现在可以修复它:
sed -i 's/semi: false/semi: false, parser: \"babylon\"/g' node_modules/vue-loader/lib/template-compiler/index.js
对于 mac:
sed -i '' 's/semi: false/semi: false, parser: \"babylon\"/g' node_modules/vue-loader/lib/template-compiler/index.js
作为一个 npm 脚本:
"scripts":
"postinstall": "sed -i 's/semi: false/semi: false, parser: \"babylon\"/g' node_modules/vue-loader/lib/template-compiler/index.js"
【讨论】:
以上是关于模块构建失败:错误:没有给出解析器和文件路径,无法在 nuxtjs 中推断出解析器的主要内容,如果未能解决你的问题,请参考以下文章
Gradle构建失败,错误无法解析:com.android.support