[英]Issue when transitioning from "babel-preset-es2015" to "babel-preset-env" on React and Webpack project
[英]With webpack, babel-preset-env for node transpiles es6 modules to es5
當我將webpack與babel-preset-env配置為使用此配置的節點時:
{
target: 'node',
context: __dirname,
entry: {
server: ['./src/server.js'],
},
output: {
filename: '[name].bundle.js',
chunkFilename: '[name].bundle.js',
path: path.join(__dirname, '/dist'),
},
module: {
rules: [{
test: /\.js$/,
use: {
loader: 'babel-loader',
options: {
presets: [
['env', {
targets: {
node: "current",
},
}],
'react'
],
},
},
}],
},
}
我的服務器使用了一些es模塊,它們可以通過webpack很好地檢測到,例如:
[319] ./node_modules/react-router-dom/es/withRouter.js 395 bytes {0} [built]
我的問題是es模塊在捆綁包中被翻譯成es5 ,我做錯了什么?
Webpack 3.6 babel預設節點1.6
您應該將libraryTarget
添加到您的配置中:
output: {
filename: ...,
pathL ...,
libraryTarget: 'commonjs2'
},
es模塊目前在節點中不受支持(僅在使用flag運行時才受支持),因此我認為webpack的輸出很好。
抱歉,es模塊不是用es6編寫的,而是將es5替換為import。 因此,為了使用來自node_modules /的es6代碼,我們似乎不得不使用其src /文件夾。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.