模块构建失败:错误:没有给出解析器和文件路径,无法在 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 中推断出解析器的主要内容,如果未能解决你的问题,请参考以下文章

webpack中的eslint导入:无法解析模块的路径

Gradle构建失败,错误无法解析:com.android.support

为啥 Flutter 构建失败并出现错误无法解析配置“:app:debugRuntimeClasspath”的所有文件

Webpack:无法解析模块“文件加载器”

“R 无法解析”可能有错误的构建路径或库导入

Ionic 2 : -- prod 文件未编译错误:构建 prod 失败:无法确定类 HomePage 的模块