错误:找不到模块“@rails/webpacker”rails 6

Ale*_*ejo 8 javascript ruby webpacker ruby-on-rails-6

当我在开发环境中运行 Rails 6.0 应用程序时,我在development.log 上得到下一条跟踪信息

\n\n
[Webpacker] Compiling\xe2\x80\xa6\n[Webpacker] Compilation failed:\n/home/alejo/rails_project/node_modules/webpack-cli/bin/cli.js:93\n                throw err;\n                ^\n\nError: Cannot find module '@rails/webpacker'\nRequire stack:\n- /mnt/config/webpack/environment.js\n- /mnt/config/webpack/development.js\n- /home/alejo/rails_project/node_modules/webpack-cli/bin/utils/convert-argv.js\n- /home/alejo/rails_project/node_modules/webpack-cli/bin/cli.js\n- /home/alejo/rails_project/node_modules/webpack/bin/webpack.js\n    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:954:17)\n    at Function.Module._load (internal/modules/cjs/loader.js:847:27)\n    at Module.require (internal/modules/cjs/loader.js:1016:19)\n    at require (/home/alejo/rails_project/node_modules/webpack-cli/node_modules/v8-compile-cache/v8-compile-cache.js:161:20)\n    at Object.<anonymous> (/mnt/config/webpack/environment.js:1:87)\n    at Module._compile (/home/alejo/rails_project/node_modules/webpack-cli/node_modules/v8-compile-cache/v8-compile-cache.js:192:30)\n    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1160:10)\n    at Module.load (internal/modules/cjs/loader.js:976:32)\n    at Function.Module._load (internal/modules/cjs/loader.js:884:14)\n    at Module.require (internal/modules/cjs/loader.js:1016:19)\n    at require (/home/alejo/rails_project/node_modules/webpack-cli/node_modules/v8-compile-cache/v8-compile-cache.js:161:20)\n    at Object.<anonymous> (/mnt/config/webpack/development.js:3:21)\n    at Module._compile (/home/alejo/rails_project/node_modules/webpack-cli/node_modules/v8-compile-cache/v8-compile-cache.js:192:30)\n    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1160:10)\n    at Module.load (internal/modules/cjs/loader.js:976:32)\n    at Function.Module._load (internal/modules/cjs/loader.js:884:14)\n    at Module.require (internal/modules/cjs/loader.js:1016:19)\n    at require (/home/alejo/rails_project/node_modules/webpack-cli/node_modules/v8-compile-cache/v8-compile-cache.js:161:20)\n    at WEBPACK_OPTIONS (/home/alejo/rails_project/node_modules/webpack-cli/bin/utils/convert-argv.js:114:13)\n    at requireConfig (/home/alejo/rails_project/node_modules/webpack-cli/bin/utils/convert-argv.js:116:6)\n    at /home/alejo/rails_project/node_modules/webpack-cli/bin/utils/convert-argv.js:123:17\n    at Array.forEach (<anonymous>)\n    at module.exports (/home/alejo/rails_project/node_modules/webpack-cli/bin/utils/convert-argv.js:121:15)\n    at /home/alejo/rails_project/node_modules/webpack-cli/bin/cli.js:71:45\n    at Object.parse (/home/alejo/rails_project/node_modules/webpack-cli/node_modules/yargs/yargs.js:567:18)\n    at /home/alejo/rails_project/node_modules/webpack-cli/bin/cli.js:49:8\n    at Object.<anonymous> (/home/alejo/rails_project/node_modules/webpack-cli/bin/cli.js:366:3)\n    at Module._compile (internal/modules/cjs/loader.js:1121:30)\n    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1160:10)\n    at Module.load (internal/modules/cjs/loader.js:976:32) {\n  code: 'MODULE_NOT_FOUND',\n  requireStack: [\n    '/mnt/config/webpack/environment.js',\n    '/mnt/config/webpack/development.js',\n    '/home/alejo/rails_project/node_modules/webpack-cli/bin/utils/convert-argv.js',\n    '/home/alejo/rails_project/node_modules/webpack-cli/bin/cli.js',\n    '/home/alejo/rails_project/node_modules/webpack/bin/webpack.js'\n  ]\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

我正在使用 webpacker 4.0.7、rails 6.0.0 和 ruby​​ 2.6.5

\n\n

我想知道为什么会出现此错误以及如何解决它。

\n\n

谢谢

\n

Mar*_*ans 16

我也遇到了这个问题。对我来说,问题是节点版本(13.6.0)。我通过运行解决了这个问题yarn add @rails/webpacker,它返回了错误Expected version "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7". Got "13.6.0"

要解决这个问题:

  1. 将节点更新到适当的版本(请参阅上面的错误)
  2. 删除node_modules目录
  3. 更新纱线文件yarn install --check-files
  4. 安装 webpackerrails webpacker:install
  5. 确认它有效bin/webpack-dev-server并且没有错误