使用 Webpack 和 Babel 将 ES6 转换为 AMD
Using Webpack and Babel to convert ES6 to AMD
我在我的应用程序中使用 webpack,并让 babel 将我的 js/jsx 文件从 es6 转换为 es5。
我想让 babel 将这些文件中加载的模块转换为 AMD。我看到了如何使用 grunt-babel 做到这一点:
Using Babel to convert ES6 modules to ES5 AMD modules, not working as expected
如果我想让 webpack 处理 babel 转换,我该怎么做?
例如,在 webpack.config.js 我有:
module: {
loaders: [{
test: /\.jsx?$/,
exclude: /node_modules/,
loader: 'babel'
}
}
我可以在那里设置一个选项让 Babel 使用 AMD 吗?
您可以使用 query
键为 babel 设置选项:
module: {
loaders: [{
test: /\.jsx?$/,
exclude: /node_modules/,
loader: 'babel',
query: {
modules: 'amd'
}
}
}
有关所有可用选项,请查看此处:http://babeljs.io/docs/usage/options/
如果您想将整个包生成为 AMD 模块,可以在 "output.libraryTarget" 配置中进行设置:
{
output: {
libraryTarget: "amd"
}
}
请参阅此处,在 "output.libraryTarget" 中:
https://webpack.github.io/docs/configuration.html
我在我的应用程序中使用 webpack,并让 babel 将我的 js/jsx 文件从 es6 转换为 es5。
我想让 babel 将这些文件中加载的模块转换为 AMD。我看到了如何使用 grunt-babel 做到这一点: Using Babel to convert ES6 modules to ES5 AMD modules, not working as expected
如果我想让 webpack 处理 babel 转换,我该怎么做?
例如,在 webpack.config.js 我有:
module: {
loaders: [{
test: /\.jsx?$/,
exclude: /node_modules/,
loader: 'babel'
}
}
我可以在那里设置一个选项让 Babel 使用 AMD 吗?
您可以使用 query
键为 babel 设置选项:
module: {
loaders: [{
test: /\.jsx?$/,
exclude: /node_modules/,
loader: 'babel',
query: {
modules: 'amd'
}
}
}
有关所有可用选项,请查看此处:http://babeljs.io/docs/usage/options/
如果您想将整个包生成为 AMD 模块,可以在 "output.libraryTarget" 配置中进行设置:
{
output: {
libraryTarget: "amd"
}
}
请参阅此处,在 "output.libraryTarget" 中: https://webpack.github.io/docs/configuration.html