【发布时间】:2016-09-13 18:00:49
【问题描述】:
如何使用 webpack 打包使用 ES6 的 Reactjs 组件?生成的包应该在 ES6 中,而不应该被转译为 ES5。
有很多很好的 Reactjs/webpack 示例可用,但我发现所有这些都可以转换为 ES5。
【问题讨论】:
标签: reactjs ecmascript-6 webpack
如何使用 webpack 打包使用 ES6 的 Reactjs 组件?生成的包应该在 ES6 中,而不应该被转译为 ES5。
有很多很好的 Reactjs/webpack 示例可用,但我发现所有这些都可以转换为 ES5。
【问题讨论】:
标签: reactjs ecmascript-6 webpack
在没有 ES2015 预设的情况下运行 babel-loader 并添加 transform-react-jsx 插件:
module: {
loaders: [
{
test: /\.jsx?$/,
exclude: /(node_modules|bower_components)/,
loader: 'babel',
query: {
plugins: ['transform-react-jsx']
}
}
]
}
【讨论】:
import 语法。正确,您需要使用require,或添加transform-es2015-modules-commonjs 变换
我发现了这个关于如何使用 React 等配置 Webpack 的非常好的示例:https://github.com/krasimir/react-webpack-starter。它使用 ES6,包括 ES6 导入,但转译为 ES5。
通过破解 babel 预设,我设法让它吐出 ES6 捆绑代码。我将文件 node_modules/babel-preset-es2015 更改为:
module.exports = {
plugins: [
require("babel-plugin-transform-es2015-modules-commonjs")
]
};
这当然不是一个可接受的解决方案,需要做的是找到或创建包含此的 Bable 预设。
在这之后我注意到的第一件事是 UglifyJS 不支持 ES6。我怀疑以后还会有其他问题,所以像我这样的新手应该坚持转译到 ES5 的时间再长一点。
【讨论】: