有关webpack组件的npm报错(loader-utils?)

问题:[npm主要报错]A valid query string passed to parseQuery should begin with '?'

背景:一开始是不停下载回之前npm install掉的依赖包,然后出现按了loaderUtils.getOptions is not a function的报错
clipboard.png

过程:
之后尝试cnpm install vue-loader vue-template-compiler loader-utils进行更新
接着就出现一长串报错,以下为全文。。

ERROR in   Error: Child compilation failed:
  Module build failed: Error: A valid query string passed to parseQuery should b  egin with '?'

  - parseQuery.js:13 Object.parseQuery
    [cg.test]/[_loader-utils@1.1.0@loader-utils]/lib/parseQuery.js:13:9


  - Error: A valid query string passed to parseQuery should begin with '?'

  - compiler.js:76
    [cg.test]/[html-webpack-plugin]/lib/compiler.js:76:16

  - Compiler.js:296 Compiler.<anonymous>
    [cg.test]/[webpack]/lib/Compiler.js:296:10

  - Compiler.js:499
    [cg.test]/[webpack]/lib/Compiler.js:499:13

  - Tapable.js:202 next
    [cg.test]/[tapable]/lib/Tapable.js:202:11

  - CachePlugin.js:62 Compiler.<anonymous>
    [cg.test]/[webpack]/lib/CachePlugin.js:62:5

  - Tapable.js:206 Compiler.applyPluginsAsyncSeries
    [cg.test]/[tapable]/lib/Tapable.js:206:13

  - Compiler.js:496
    [cg.test]/[webpack]/lib/Compiler.js:496:10

  - Tapable.js:195 Compilation.applyPluginsAsyncSeries
    [cg.test]/[tapable]/lib/Tapable.js:195:46

  - Compilation.js:649 self.applyPluginsAsync.err
    [cg.test]/[webpack]/lib/Compilation.js:649:19

  - Tapable.js:195 Compilation.applyPluginsAsyncSeries
    [cg.test]/[tapable]/lib/Tapable.js:195:46

  - Compilation.js:640 self.applyPluginsAsync.err
    [cg.test]/[webpack]/lib/Compilation.js:640:11

  - Tapable.js:202 next
    [cg.test]/[tapable]/lib/Tapable.js:202:11

  - UglifyJsPlugin.js:230 Compilation.compilation.plugin
    [cg.test]/[webpack]/lib/optimize/UglifyJsPlugin.js:230:5

  - Tapable.js:206 Compilation.applyPluginsAsyncSeries
    [cg.test]/[tapable]/lib/Tapable.js:206:13

  - Compilation.js:635 self.applyPluginsAsync.err
    [cg.test]/[webpack]/lib/Compilation.js:635:10

  - Tapable.js:195 Compilation.applyPluginsAsyncSeries
    [cg.test]/[tapable]/lib/Tapable.js:195:46

  - Compilation.js:631 sealPart2
    [cg.test]/[webpack]/lib/Compilation.js:631:9

  - Tapable.js:195 Compilation.applyPluginsAsyncSeries
    [cg.test]/[tapable]/lib/Tapable.js:195:46

  - Compilation.js:579 Compilation.seal
    [cg.test]/[webpack]/lib/Compilation.js:579:8

  - Compiler.js:493
    [cg.test]/[webpack]/lib/Compiler.js:493:16

  - Tapable.js:289
    [cg.test]/[tapable]/lib/Tapable.js:289:11

  - Compilation.js:481 _addModuleChain
    [cg.test]/[webpack]/lib/Compilation.js:481:11



ERROR in ./src/main.js
Module build failed: Error: A valid query string passed to parseQuery should begin with '?'
    at Object.parseQuery (D:\***\node_modules\_loader-utils@1.1.0@loader-utils\lib\parseQuery.js:13:9)
    at Object.module.exports (D:***\node_modules\_babel-loader@6.4.1@babel-loader\lib\index.js:104:35)

  Build complete.

  Tip: built files are meant to be served over an HTTP server.
  Opening index.html over file:// won't work.
  

之后我在查找答案的过程中,看到webpack项目下面的loader-utils有提及过这个问题,可是还是不知道解决的方法,(是webpack1和webpack2之间的配置冲突吗?可是我的webpack是2.x的,之后更新了loader-utils也无果_(:з」∠)_)

有大神知道解决方案或遇到类似的情况吗

阅读 9.7k
4 个回答

参考了html-webpack-plugin的两个issue,调整一些组件的版本兼容。
而最后是终于消除了这个error又出现新的其他问题,然后又一轮找资料。
最后,我觉得不能清晰地弄清除各版本的兼容问题还是重新安装一遍依赖,
即删除了node_module文件夹和package-lock.json(不然会按里面配置进行更新下载),重新在这个项目 npm installcnpm i速度虽然快但是我经常会出错漏包或者版本兼容等奇奇怪怪的问题,可是npm i可能也会因为网速不好而下载失败),然后就终于全部解决啦~~

如果不想重新下载可以参考下面两个链接
[1]https://github.com/jantimon/h...
[2]https://github.com/jantimon/h...

个人觉得可以升级下babel-loader?我记得webpack2.x推荐是7.x的babel-loader
另外如果还是有问题可能安装下最新的vue-cli重新构建下项目吧。。

npm install --save-dev loader-utils@0.2.17

去掉package.json里的 html-webpack-plugin ^ (向后兼容)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题