我通过 webpack(^5.51.1) 和 vue-loader(^17.0.0) 编译我的代码,我尝试启动一个旧项目,但它给了我这个错误:
[webpack-cli] Failed to load '/var/www/webpack.config.js' config [webpack-cli] Error: Cannot find module 'vue/compiler-sfc' Require stack: - /var/www/node_modules/vue-loader/dist/resolveScript.js - /var/www/node_modules/vue-loader/dist/select.js - /var/www/node_modules/vue-loader/dist/index.js - /var/www/webpack.config.js - /var/www/node_modules/webpack-cli/lib/webpack-cli.js - /var/www/node_modules/webpack-cli/lib/bootstrap.js - /var/www/node_modules/webpack-cli/bin/cli.js - /var/www/node_modules/webpack/bin/webpack.js at Function.Module._resolveFilename (node:internal/modules/cjs/loader:933:15) at Function.Module._load (node:internal/modules/cjs/loader:778:27) at Module.require (node:internal/modules/cjs/loader:999:19) at require (/var/www/node_modules/v8-compile-cache/v8-compile-cache.js:159:20) at Object.<anonymous> (/var/www/node_modules/vue-loader/dist/resolveScript.js:5:24) at Module._compile (/var/www/node_modules/v8-compile-cache/v8-compile-cache.js:192:30) at Object.Module._extensions..js (node:internal/modules/cjs/loader:1151:10) at Module.load (node:internal/modules/cjs/loader:975:32) at Function.Module._load (node:internal/modules/cjs/loader:822:12) at Module.require (node:internal/modules/cjs/loader:999:19) { code: 'MODULE_NOT_FOUND', requireStack: [ '/var/www/node_modules/vue-loader/dist/resolveScript.js', '/var/www/node_modules/vue-loader/dist/select.js', '/var/www/node_modules/vue-loader/dist/index.js', '/var/www/webpack.config.js', '/var/www/node_modules/webpack-cli/lib/webpack-cli.js', '/var/www/node_modules/webpack-cli/lib/bootstrap.js', '/var/www/node_modules/webpack-cli/bin/cli.js', '/var/www/node_modules/webpack/bin/webpack.js' ] }
我真的不知道发生了什么。我尝试将 @vue/compiler-sfc
添加到我的 package.json 但它不起作用。我真的不想切换到 Vue3,因为那会破坏很多东西。
编辑:参见 package.json:pastebin
似乎 vue-loader > 15 中有一些重大变化。它告诉我曾经强制 npm 保留在版本 15 上。在其他地方没有找到...