webpack.config에서 ES6을 사용하는 방법은 무엇입니까? 이 repo https://github.com/kriasoft/react-starter-kit 처럼
?
예를 들어 :
이것을 사용하여
import webpack from 'webpack';
대신에
var webpack = require('webpack');
그것은 필요보다는 오히려 호기심입니다.
답변
구성 이름을로 지정하십시오 webpack.config.babel.js
. 당신은해야 바벨가 등록 프로젝트에 포함되어 있습니다. 예에서 반응 라우터 – 부트 스트랩 .
Webpack은 내부적 으로 해석 하여이 작업을 수행합니다.
답변
@bebraw가 제안하는 것의 대안으로 ES6 + 구문을 사용하여 JavaScript 자동화 스크립트를 만들 수 있습니다.
// 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
추신 : 더 복잡한 빌드 단계를 구현해야 할 때 JavaScript API를 통해 웹 팩을 호출하는 것이 명령 줄을 통해 호출하는 것보다 더 나은 방법 일 수 있습니다. 예를 들어 서버 측 번들이 준비되면 Node.js 앱 서버를 시작하고 Node.js 서버가 시작된 직후 BrowserSync dev 서버를 시작하십시오.
또한보십시오:
- 반응 스타터 키트 (
package.json/scripts
,tools/bundle.js
,tools/webpack.config.js
) - 반응 정적 상용구 (
run.js
,webpack.config.js
,node run
) - Gulp.js가 필요하지 않을 수 있습니다
답변
또 다른 방법은 다음과 같은 npm 스크립트를 사용하여 다음 "webpack": "babel-node ./node_modules/webpack/bin/webpack"
과 같이 실행하는 것 npm run webpack
입니다.
답변
내가 웹팩 2. 실행 Juho의 솔루션 @ 점점 문제가 있었다 웹팩 마이그레이션 문서를 당신이 바벨 모듈 분석의 설정하는 것이 좋습니다 :
웹팩에서 사용할 수 있도록 이러한 모듈 기호를 구문 분석하지 않도록 Babel에 알리고 싶을 것입니다. .babelrc 또는 babel-loader 옵션에서 다음을 설정하여이 작업을 수행 할 수 있습니다.
.babelrc :
{
"presets": [
["es2015", { "modules": false }]
]
}
슬프게도 이것은 자동 babel register 기능과 충돌합니다. 풀이
{ "modules": false }
babel 구성에서 일이 다시 실행되었습니다. 그러나 이로 인해 트리 셰이 킹이 중단되므로 전체 솔루션 에는 로더 옵션의 사전 설정을 덮어 쓰는 것이 포함됩니다 .
module: {
rules: [
{
test: /\.js$/,
include: path.resolve('src'),
loader: 'babel-loader',
options: {
babelrc: false,
presets: [['env', {modules: false}]]
}
}
]
}
편집 , 2017 년 11 월 13 일; Webpack 구성 스 니펫을 Webpack 3으로 업데이트했습니다 (@ x-yuri 덕분에). 이전, Webpack 2 스 니펫 :
{
test: /\.js$/,
exclude: ['node_modules'],
loader: 'babel',
query: {
babelrc: false,
presets: [
['es2015', { modules: false }],
],
},
},
답변
이것은 정말 쉽지만, 어떤 대답에서도 나에게 분명하지 않았으므로 다른 사람이 나와 같은 혼란 스러울 경우 :
.babel
확장명 앞에 파일 이름의 일부를 추가 하십시오 ( babel-register
종속성으로 설치 되었다고 가정 ).
예:
mv webpack.config.js webpack.config.babel.js
답변
이것은 webpack 4를 사용하여 나를 위해 일한 것입니다.
에서 package.json
:
"scripts": {
"dev": "cross-env APP_ENV=dev webpack-serve --require @babel/register"
},
"devDependencies": {
"@babel/core": "^7.0.0-rc.1",
"@babel/register": "^7.0.0-rc.1",
"@babel/preset-env": "^7.0.0-rc.1",
"babel-plugin-transform-es2015-modules-commonjs": "^6.26.2"
},
"babel": {
"presets": [
["@babel/preset-env", {
"targets": {
"node": "current"
}
}]
],
"plugins": [
"transform-es2015-modules-commonjs"
]
}
각 의존성이 어떻게 사용되는지 명확하게 볼 수 있으므로 놀랄 일은 없습니다.
참고 webpack-serve
–require 를 사용하고 있지만 webpack
대신 명령 을 사용하려면로 바꾸십시오 webpack --config-register
. 두 경우 @babel/register
모두이 작업을 수행하는 데 필요합니다.
그리고 그게 다야!
yarn dev
그리고 당신은 es6
구성에서 사용할 수 있습니다 !
의 경우 명령 과 동일한 옵션을 webpack-dev-server
사용하십시오.--config-register
webpack
노트:
구성 파일의 이름을 webpack.config.babel.js
(허용 된 답변에서 제안한대로) 바꿀 필요가 없습니다 . webpack.config.js
잘 작동합니다.
답변
또 다른 방법은 노드에 require 인수를 사용하는 것입니다.
node -r babel-register ./node_modules/webpack/bin/webpack
이 방법을 찾을 전자 반응 – 보일러 ,보기에서 build-main
와 build-renderer
스크립트.