我在laravel项目中安装了webpack-cli。我不知道为什么首先我们需要它来运行我的vue应用程序,但这会导致一个错误:
当我运行npm时运行dev或者npm run hot
[webpack-cli] Error: Cannot find module 'webpack/lib/rules/DescriptionDataMatcherRulePlugin'
Require stack:
- C:UsersVirussDesktoptest-meme-librarymeme-librarynode_modulesvue-loaderlibplugin-webpack5.js
- C:UsersVirussDesktoptest-meme-librarymeme-librarynode_modulesvue-loaderlibplugin.js
- C:UsersVirussDesktoptest-meme-librarymeme-librarynode_modulesvue-loaderlibindex.js
- C:UsersVirussDesktoptest-meme-librarymeme-librarynode_moduleslaravel-mixsrccomponentsVue.js
- C:UsersVirussDesktoptest-meme-librarymeme-librarynode_moduleslaravel-mixsrccomponentsComponentRegistrar.js
- C:UsersVirussDesktoptest-meme-librarymeme-librarynode_moduleslaravel-mixsrcMix.js
- C:UsersVirussDesktoptest-meme-librarymeme-librarynode_moduleslaravel-mixsetupwebpack.config.js
- C:UsersVirussDesktoptest-meme-librarymeme-librarynode_moduleswebpack-clilibwebpack-cli.js
- C:UsersVirussDesktoptest-meme-librarymeme-librarynode_moduleswebpack-clilibbootstrap.js
- C:UsersVirussDesktoptest-meme-librarymeme-librarynode_moduleswebpack-clibincli.js
- C:UsersVirussDesktoptest-meme-librarymeme-librarynode_moduleswebpackbinwebpack.js
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:902:15)
at Function.Module._load (internal/modules/cjs/loader.js:746:27)
at Module.require (internal/modules/cjs/loader.js:974:19)
at require (internal/modules/cjs/helpers.js:93:18)
at Object.<anonymous> (C:UsersVirussDesktoptest-meme-librarymeme-librarynode_modulesvue-loaderlibplugin-webpack5.js:6:42)
at Module._compile (internal/modules/cjs/loader.js:1085:14)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
at Module.load (internal/modules/cjs/loader.js:950:32)
at Function.Module._load (internal/modules/cjs/loader.js:790:12)
at Module.require (internal/modules/cjs/loader.js:974:19) {
code: 'MODULE_NOT_FOUND',
requireStack: [
'C:\Users\Viruss\Desktop\test-meme-library\meme-library\node_modules\vue-loader\lib\plugin-webpack5.js',
'C:\Users\Viruss\Desktop\test-meme-library\meme-library\node_modules\vue-loader\lib\plugin.js',
'C:\Users\Viruss\Desktop\test-meme-library\meme-library\node_modules\vue-loader\lib\index.js',
'C:\Users\Viruss\Desktop\test-meme-library\meme-library\node_modules\laravel-mix\src\components\Vue.js',
'C:\Users\Viruss\Desktop\test-meme-library\meme-library\node_modules\laravel-mix\src\components\ComponentRegistrar.js',
'C:\Users\Viruss\Desktop\test-meme-library\meme-library\node_modules\laravel-mix\src\Mix.js',
'C:\Users\Viruss\Desktop\test-meme-library\meme-library\node_modules\laravel-mix\setup\webpack.config.js',
'C:\Users\Viruss\Desktop\test-meme-library\meme-library\node_modules\webpack-cli\lib\webpack-cli.js',
'C:\Users\Viruss\Desktop\test-meme-library\meme-library\node_modules\webpack-cli\lib\bootstrap.js',
'C:\Users\Viruss\Desktop\test-meme-library\meme-library\node_modules\webpack-cli\bin\cli.js',
'C:\Users\Viruss\Desktop\test-meme-library\meme-library\node_modules\webpack\bin\webpack.js'
]
}
Vue也安装了Vue -loader,不明白为什么找不到那些文件。此外,我看了node_modules的一切都在那里…
您需要更新您的vue-loader
npm update vue-loader
如果没有安装,请安装
npm i vue-loader
Laravel默认添加了Vue-loader的15.9.7
版本。我必须手动更新包JSON中的vue-loader:^15.9.8
来解决这个错误。
再做yarn
和yarn dev
或npm install
和npm run dev
我的项目中有这个错误。在搜索之后,我发现我必须升级Vue加载器。如果没有安装,从这里开始安装。因此,我将这行添加到我的项目的终端中。
npm install -D vue-loader vue-template-compiler
running
npm update vue-loader
如果已经安装了vue-loader包,应该可以正常工作。
其中一些更新是主要版本。运行npm update不会更新这些版本。主版本永远不会以这种方式更新,因为它们(根据定义)会引入破坏性的更改,而npm希望为您省去麻烦。
有时npm包不能正确安装,我使用以下方法来解决这个问题:
* *
- 从项目中删除node modules文件夹
- 执行以下命令
- npm install -g npm-check-updates
- ncu - u
- npm安装/更新。* *