1 回答

TA貢獻1810條經驗 獲得超5個贊
正如我在問題的更新部分中提到的,解決方案是將所有與 babel 相關的包移動到devDependencies根 package.json 的部分。
但為什么這有幫助?
問題是我NODE_ENV在 Dockerfile 中設置為生產。如果設置為生產,npm將不會安裝開發依賴項。NODE_ENV在主機上我沒有這樣的變量。此外@babel/polyfill,根據 babel docs ,另一個問題是:
因為這是一個 polyfill(它將在您的源代碼之前運行),我們需要它是一個依賴項,而不是一個 devDependency
根據文檔 @babel/polyfill也已棄用,因此更好的解決方案是:
添加"babel-loader": "8.0.6"到根 package.json
devDependencies在a-somethingpackage.json中有以下內容:
"devDependencies": {
"webpack": "3.5.6",
"core-js": "^3.4.7",
"regenerator-runtime": "^0.13.3"
}
將這兩行放在最頂部的條目 Javascript 文件中:
import 'core-js/stable'
import 'regenerator-runtime/runtime'
最后使用這個 webpack 配置:
const path = require('path')
module.exports = {
target: 'node',
entry: './src/index.js',
output: {
filename: 'bundle.js',
path: path.resolve(__dirname, 'build')
},
module: {
rules: [
{
test: /\.js?$/,
use: {
loader: 'babel-loader',
options: {
rootMode: 'upward',
presets: [
['@babel/preset-env', {
corejs: 3,
useBuiltIns: 'usage'
}]
]
}
},
include: [
path.resolve(__dirname, 'src'),
/node_modules\/a-/,
/node_modules\/b-/
]
}
]
}
}
添加回答
舉報