我怎样才能在webpack.config.js中使用ES6?
如何在webpack.config中使用ES6? 像这个回购https://github.com/kriasoft/react-starter-kit呢?
例如:
使用这个
import webpack from 'webpack'; 代替
 var webpack = require('webpack'); 
这是一个好奇心,而不是一个需要。
 尝试将您的configuration命名为webpack.config.babel.js 。 你应该有包含在项目中的babel-register 。 示例在react-router-bootstrap 。 
Webpack依靠内部解释来完成这项工作。
作为@bebrawbuild议的替代scheme,您可以使用ES6 +语法创buildJavaScript自动化脚本:
 // tools/bundle.js import webpack from 'webpack'; import webpackConfig from './webpack.config.js'; // <-- Contains ES6+ const bundler = webpack(webpackConfig); bundler.run(...); 
并用babel执行它:
 $ babel-node tools/bundle 
PS :当你需要实现更复杂的构build步骤时,通过JavaScript API调用webpack可能是一个比通过命令行调用更好的方法。 例如,在服务器端软件包准备就绪后,启动Node.js应用程序服务器,在Node.js服务器启动之后,启动BrowserSync dev服务器。
也可以看看:
-   React入门套件 ( package.json/scripts,tools/bundle.js,tools/webpack.config.js)
-   React静态Boilerplate ( run.js,webpack.config.js,node run)
- 你可能不需要Gulp.js
 另一种方法是使用如下的npm脚本: "webpack": "babel-node ./node_modules/webpack/bin/webpack" ,然后像这样npm run webpack : npm run webpack 。 
这真的很容易,但是从任何答案来看我都不是很明显,所以如果有人像我一样困惑:
  只要在扩展名之前添加.babel到文件名的部分 (假设你已经将babel-register安装为依赖项)。 
例:
 mv webpack.config.js webpack.config.babel.js 
我有一个问题得到@ Juho的解决scheme与Webpack 2运行。Webpack迁移文档build议您转向babel模块parsing:
需要注意的是,你要告诉Babel不要分析这些模块符号,以便webpack可以使用它们。 您可以通过在.babelrc或者babel-loader选项中设置以下内容来完成此操作。
.babelrc:
 { "presets": [ ["es2015", { "modules": false }] ] } 
不幸的是,这与自动babel寄存器function冲突。 删除
 { "modules": false } 
从巴贝尔configuration得到的东西再次运行。 但是,这会导致破坏树状结构,因此完整的解决scheme将涉及覆盖加载器选项中的预设 :
 module: { rules: [ { test: /\.js$/, include: path.resolve('src'), loader: 'babel-loader', options: { babelrc: false, presets: [['env', {modules: false}]] } } ] } 
编辑 ,2017年11月13日; 更新的webpackconfiguration片段到Webpack 3(感谢@ x-yuri)。 旧的,Webpack 2片段:
 { test: /\.js$/, exclude: ['node_modules'], loader: 'babel', query: { babelrc: false, presets: [ ['es2015', { modules: false }], ], }, }, 
还有一种方法是对节点使用require参数:
 node -r babel-register ./node_modules/webpack/bin/webpack 
 在电子反应模式中find了这种方式,查看build-main和build-renderer脚本。 
 将webpack.config.js重命名为webpack.config.babel.js 。 
 然后在.babelrc中: {"presets": ["es2015"]} presets {"presets": ["es2015"]} 
但是,如果你想为babel-cli使用不同的babelconfiguration,你的.babelrc可能看起来像这样:
 { "env": { "babel-cli": { "presets": [["es2015", {"modules": false}]] }, "production": { "presets": ["es2015"] }, "development": { "presets": ["es2015"] } } } 
在package.json中:
 { "scripts": { "babel": "BABEL_ENV='babel-cli' babel src -d dist/babel --source-maps", "build-dev": "NODE_ENV='development' webpack -d --progress --profile --colors", ... }, ... } 
 这是愚蠢的,但{"modules": false}将打破webpack,如果你不使用不同的envs。 
有关.babelrc的更多信息,请查看官方文档 。
我最好的方法与npm脚本一起
 node -r babel-register ./node_modules/webpack/bin/webpack 
并按照您对Babel的要求configuration其余的脚本
没有足够的代表评论,但我想添加任何TypeScript用户有一个类似的解决scheme,以上@Sandrik
我有两个指向包含ES6语法的webpackconfiguration(JS文件)的脚本。
 "start-dev": "./node_modules/.bin/ts-node ./node_modules/webpack-dev-server/bin/webpack-dev-server.js --config ./webpack/webpack.config.dev.js" 
和
 "build": "./node_modules/.bin/ts-node ./node_modules/webpack/bin/webpack.js --config webpack/webpack.config.js"