Webpack 编译:部署生产时找不到模块'@babel/preset-env'



我使用 Capistrano 部署我的 Rails 项目( Rails 6.0.0, Ruby 2.6.0(

启动"捆绑执行上限生产部署"时,我得到以下日志

./app/javascript/packs/application中的错误.js

模块构建失败(来自./node_modules/babel-loader/lib/index.js(:

错误:找不到模块"@babel/预设环境">

./app/javascript/packs/server_rendering.js 中的错误

模块构建失败(来自./node_modules/babel-loader/lib/index.js(:

错误:找不到模块"@babel/预设环境">

但是当我在本地RAILS_ENV=production bundle exec rails assets:precompile进行测试时.它建立了成功

我的包.json

{
"name": "my_app_name",
"private": true,
"dependencies": {
"@babel/preset-react": "^7.0.0",
"@rails/actiontext": "^6.0.0",
"@rails/webpacker": "^4.0.2",
"axios": "^0.19.0",
"babel-plugin-transform-react-remove-prop-types": "^0.4.24",
"core-js": "2",
"prop-types": "^15.7.2",
"react": "^16.8.6",
"react-dom": "^16.8.6",
"react_ujs": "^2.6.0",
"trix": "^1.0.0",
"webpack-dev-server": "^3.3.1"
},
"devDependencies": {
"@babel/preset-env": "^7.7.6",
"babel-preset-env": "^1.7.0",
"webpack-dev-server": "^3.3.1"
}
}

Myapp/javascript/packs/application.js

// Support component names relative to this directory:
var componentRequireContext = require.context("components", true);
var ReactRailsUJS = require("react_ujs");
ReactRailsUJS.useContext(componentRequireContext);

Myapp/javascript/packs/server_rendering.js

// By default, this pack is loaded for server-side rendering.
// It must expose react_ujs as `ReactRailsUJS` and prepare a require context.
var componentRequireContext = require.context("components", true);
var ReactRailsUJS = require("react_ujs");
ReactRailsUJS.useContext(componentRequireContext);

有什么解决办法吗?谢谢

在生产模式下编译时想要的任何内容都需要处于dependencies中。将@babel/preset-envdevDependencies移到 package.json 中的dependencies中。您也可以删除babel-preset-env因为这是多余的。

最新更新