Como usar o ES6 no webpack.config? Como este repositório que o https://github.com/kriasoft/react-starter-kit faz?
Por exemplo:
usando isso
import webpack from 'webpack';
ao invés de
var webpack = require('webpack');
É uma curiosidade e não uma necessidade.
which webpack
"Respostas:
Tente nomear sua configuração como
webpack.config.babel.js
. Você deve incluir o babel-register no projeto. Exemplo em react-router-bootstrap .O Webpack conta com a interpretação interna para fazer isso funcionar.
fonte
npm run
este script:webpack --config webpack.config.babel.js
.--config
.babel-loader
módulo também é necessáriaecho '{ "presets": ["es2015"] }' > .babelrc
Como alternativa ao que o @bebraw sugere, você pode criar um script de automação JavaScript com a sintaxe do ES6 +:
E execute-o com babel:
PS : Chamar o webpack por meio da API JavaScript pode ser uma abordagem melhor (do que chamá-lo por meio de uma linha de comando) quando você precisar implementar etapas de compilação mais complexas. Por exemplo, depois que o pacote do lado do servidor estiver pronto, inicie o servidor de aplicativos Node.js. e logo após o servidor Node.js. inicie, inicie o servidor de desenvolvimento BrowserSync.
Veja também:
package.json/scripts
,tools/bundle.js
,tools/webpack.config.js
)run.js
,webpack.config.js
,node run
)fonte
Outra abordagem é ter um script npm assim:
"webpack": "babel-node ./node_modules/webpack/bin/webpack"
e executá-lo assim:npm run webpack
.fonte
babel-node ./node_modules/webpack/bin/webpack --config custom-webpack.config
Ocorreu um problema ao executar a solução @ Juho com o Webpack 2. Os documentos de migração do Webpack sugerem que você desative a análise do módulo babel:
Infelizmente, isso entra em conflito com a funcionalidade do registro automático de babel. Removendo
da configuração do babel colocou as coisas em execução novamente. No entanto, isso resultaria em quebra de árvores, portanto, uma solução completa envolveria a substituição das predefinições nas opções do carregador :
Edit , 13 de novembro de 2017; snippet de configuração do webpack atualizado para o Webpack 3 (graças a @ x-yuri). Fragmento antigo do Webpack 2:
fonte
module:{rules: [{test: /\.js$/, include: path.resolve('src'), loader: 'babel-loader', options: {babelrc: false, presets: [['env', {modules: false}]]}}]}
( gist ).-loader
o sufixo não é mais opcional. Tente evitarexclude
e preferirinclude
. As cadeias de caracteres de inclusão / exclusão funcionam apenas se caminhos absolutos.query
foi renomeado paraoptions
.{modules: false}
em.babelrc
ser capaz de usarimport
é nowebpack.config.babel.js
.-loader
necessário adicionar o sufixo novamente webpack.js.org/migrate/3/…Isso é realmente fácil, mas não foi óbvio para mim com nenhuma das respostas; portanto, se alguém mais estiver confuso como eu:
Basta anexar
.babel
à parte do seu nome de arquivo antes da extensão (assumindo que vocêbabel-register
instalou como uma dependência).Exemplo:
fonte
require
. Estranho, não é?Isto é o que funcionou para mim usando o webpack 4:
Em
package.json
:Você pode ver claramente como cada dependência é usada, portanto não há surpresas.
Observe que estou usando
webpack-serve
--require , mas se você deseja usar owebpack
comando, substitua-o porwebpack --config-register
. Em ambos os casos,@babel/register
é necessário para fazer isso funcionar.E é isso!
yarn dev
E você é capaz de usar
es6
na configuração!Para
webpack-dev-server
, use a--config-register
opção que é igual aowebpack
comandoNOTA:
NÃO é necessário renomear o arquivo de configuração para
webpack.config.babel.js
(como sugerido pela resposta aceita).webpack.config.js
vai funcionar muito bem.fonte
--config-register
opção Também o repo parawebpack-serve
se mudou para cá: github.com/shellscape/webpack-servewebpack --config-register @babel/register --config webpack/development.config.js
Eu tive que especificar --config porque minha configuração do webpack está em uma pasta. Obrigado!Mais uma maneira é usar o argumento require para o nó:
node -r babel-register ./node_modules/webpack/bin/webpack
Encontrado desta maneira em electron-react-boilerplate , veja
build-main
ebuild-renderer
scripts.fonte
Configuração para Babel 7 e Webpack 4
package.json
.babelrc
webpack.config.babel.js
fonte
Renomeie
webpack.config.js
parawebpack.config.babel.js
.Em seguida, em .babelrc:
{"presets": ["es2015"]}
No entanto, se você quiser usar uma configuração diferente do babel para o babel-cli, o seu .babelrc poderá ser algo assim:
E no package.json:
É idiota, mas o
{"modules": false}
pacote web será quebrado se você não usar envs diferentes.Para mais informações sobre .babelrc, consulte os documentos oficiais .
fonte
Para TypeScript : direto de https://webpack.js.org/configuration/configuration-languages/
em seguida, escreva seu, por exemplo: webpack.config.ts
Verifique o link para obter mais detalhes, onde você pode usar um plug-in para ter um arquivo tsconfig separado apenas para a configuração do webpack, se não estiver direcionando o commonjs (que é um requisito para que isso funcione, pois depende do nó ts).
fonte
Não tenho representante suficiente para comentar, mas eu gostaria de adicionar a qualquer usuário TypeScript uma solução semelhante ao @Sandrik acima
Eu tenho dois scripts que eu uso apontando para configurações do webpack (arquivos JS) que contêm a sintaxe ES6.
"start-dev": "./node_modules/.bin/ts-node ./node_modules/webpack-dev-server/bin/webpack-dev-server.js --config ./webpack/webpack.config.dev.js"
e
"build": "./node_modules/.bin/ts-node ./node_modules/webpack/bin/webpack.js --config webpack/webpack.config.js"
fonte
Minha melhor abordagem, juntamente com o script npm, é
e configure o restante dos scripts conforme sua exigência de Babel
fonte
Depois de toneladas de documentos ...
Basta instalar a predefinição es2015 (não env !!!) e adicioná-la ao
Renomeie seu
webpack.config.js
parawebpack.config.babel.js
fonte
Usando o Webpack 4 e o Babel 7
Para configurar um arquivo de configuração do webpack para usar o ES2015, é necessário o Babel:
Instale dependências de desenvolvimento:
Crie um
.babelrc
arquivo:Crie sua configuração do webpack
webpack.config.babel.js
:Crie seus scripts em
package.json
:Corra
npm run build
enpm start
.A configuração do webpack é baseada em um projeto de amostra com a seguinte estrutura de diretórios:
Projeto de amostra: Webpack Configuration Language Using Babel
fonte
Adicionar es6 ao webpack é um processo de 3 etapas
No webpack.config.js, adicione
fonte
Você não pode. Você precisa convertê-lo para CommonJS, com
babel
ouesm
.https://github.com/webpack/webpack-cli/issues/282
Mas você pode correr
webpack -r esm @babel/register
fonte