¿Cómo usar ES6 en webpack.config? Me gusta este repositorio https://github.com/kriasoft/react-starter-kit ?
Por ejemplo:
usando esto
import webpack from 'webpack';
en vez de
var webpack = require('webpack');
Es una curiosidad más que una necesidad.
which webpack
"Respuestas:
Intenta nombrar tu configuración como
webpack.config.babel.js
. Debería tener babel-register incluido en el proyecto. Ejemplo en react-router-bootstrap .Webpack se basa en la interpretación interna para que esto funcione.
fuente
npm run
este guión:webpack --config webpack.config.babel.js
.--config
.babel-loader
también se requiere el móduloecho '{ "presets": ["es2015"] }' > .babelrc
Como alternativa a lo que sugiere @bebraw, puede crear un script de automatización de JavaScript con sintaxis ES6 +:
Y ejecutarlo con babel:
PD : Llamar a webpack a través de la API de JavaScript podría ser un mejor enfoque (que llamarlo a través de una línea de comando) cuando necesita implementar pasos de compilación más complejos. Por ejemplo, después de que el paquete del lado del servidor esté listo, inicie el servidor de aplicaciones Node.js, y justo después de que se inicie el servidor Node.js, inicie el servidor de desarrollo BrowserSync.
Ver también:
package.json/scripts
,tools/bundle.js
,tools/webpack.config.js
)run.js
,webpack.config.js
,node run
)fuente
Otro enfoque es tener un guión NPM como esta:
"webpack": "babel-node ./node_modules/webpack/bin/webpack"
y ejecutarlo así:npm run webpack
.fuente
babel-node ./node_modules/webpack/bin/webpack --config custom-webpack.config
Tuve un problema al ejecutar la solución de @ Juho con Webpack 2. Los documentos de migración de Webpack sugieren que desactive el análisis del módulo babel:
Lamentablemente, esto entra en conflicto con la funcionalidad de registro automático de babel. Quitando
desde la configuración de babel, las cosas volvieron a funcionar Sin embargo, esto daría como resultado la sacudida del árbol, por lo que una solución completa implicaría sobrescribir los ajustes preestablecidos en las opciones del cargador :
Edición , 13 de noviembre de 2017; fragmento de configuración de webpack actualizado a Webpack 3 (gracias a @ x-yuri). Viejo fragmento de Webpack 2:
fuente
module:{rules: [{test: /\.js$/, include: path.resolve('src'), loader: 'babel-loader', options: {babelrc: false, presets: [['env', {modules: false}]]}}]}
( esencia ).-loader
sufijo ya no es opcional. Intenta evitarexclude
y preferirinclude
. Las cadenas en incluir / excluir trabajo solo si son rutas absolutas.query
fue renombrado aoptions
.{modules: false}
en.babelrc
ser capaz de usarimport
's enwebpack.config.babel.js
.-loader
sufijo debe agregarse nuevamente webpack.js.org/migrate/3/…Esto es realmente fácil, pero no fue obvio para mí por ninguna de las respuestas, así que si alguien más está confundido como yo:
Simplemente agregue
.babel
la parte de su nombre de archivo antes de la extensión (suponiendo que tengababel-register
instalado como una dependencia).Ejemplo:
fuente
require
. Eso es raro, ¿no?Esto es lo que funcionó para mí usando webpack 4:
En
package.json
:Puede ver claramente cómo se usa cada dependencia, por lo que no hay sorpresas allí.
Tenga en cuenta que estoy usando
webpack-serve
--require , pero si desea usar elwebpack
comando en su lugar, reemplácelo conwebpack --config-register
. En cualquier caso,@babel/register
es necesario para que esto funcione.¡Y eso es!
yarn dev
¡Y puedes usarlo
es6
en la configuración!Para
webpack-dev-server
, use la--config-register
opción que es la misma que con elwebpack
comandoNOTA:
NO es necesario cambiar el nombre del archivo de configuración a
webpack.config.babel.js
(como lo sugiere la respuesta aceptada).webpack.config.js
funcionará bien.fuente
--config-register
opción. También el repositorio parawebpack-serve
mudado aquí: github.com/shellscape/webpack-servewebpack --config-register @babel/register --config webpack/development.config.js
tuve que especificar --config porque mi configuración de paquete web está en una carpeta. ¡Gracias!Una forma más es usar el argumento require para el nodo:
node -r babel-register ./node_modules/webpack/bin/webpack
Encontrado de esta manera en electron-react-boilerplate , mira
build-main
ybuild-renderer
scripts.fuente
Configuración para Babel 7 y Webpack 4
package.json
.babelrc
webpack.config.babel.js
fuente
Renombrar
webpack.config.js
awebpack.config.babel.js
.Luego en .babelrc:
{"presets": ["es2015"]}
Sin embargo, si desea utilizar una configuración de babel diferente para babel-cli, su .babelrc podría verse así:
Y en package.json:
Es tonto pero el
{"modules": false}
romperá el paquete web si no usa diferentes envs.Para obtener más información sobre .babelrc, consulte los documentos oficiales .
fuente
Para TypeScript : directamente desde https://webpack.js.org/configuration/configuration-languages/
luego proceda a escribir su, por ejemplo: webpack.config.ts
Consulte el enlace para obtener más detalles donde puede usar un complemento para tener un archivo tsconfig separado solo para la configuración del paquete web si no está apuntando a commonjs (que es un requisito para que esto funcione ya que se basa en el nodo ts).
fuente
No tengo suficiente representante para comentar, pero quería agregar para cualquier usuario de TypeScript una solución similar a @Sandrik arriba
Tengo dos scripts que utilizo apuntando a configuraciones de paquete web (archivos JS) que contienen la sintaxis ES6.
"start-dev": "./node_modules/.bin/ts-node ./node_modules/webpack-dev-server/bin/webpack-dev-server.js --config ./webpack/webpack.config.dev.js"
y
"build": "./node_modules/.bin/ts-node ./node_modules/webpack/bin/webpack.js --config webpack/webpack.config.js"
fuente
Mi mejor enfoque junto con el script npm es
y configure el resto de los scripts según sus requisitos para Babel
fuente
Después de toneladas de los documentos ...
Simplemente instale el preestablecido es2015 (no env !!!) y agréguelo a
Renombra tu
webpack.config.js
awebpack.config.babel.js
fuente
Usando Webpack 4 y Babel 7
Para configurar un archivo de configuración de paquete web para usar ES2015 requiere Babel:
Instalar dependencias de desarrollo:
Crea un
.babelrc
archivo:Cree su configuración de paquete web
webpack.config.babel.js
:Crea tus scripts en
package.json
:Corre
npm run build
ynpm start
.La configuración del paquete web se basa en un proyecto de muestra con la siguiente estructura de directorios:
Proyecto de muestra: Lenguaje de configuración de paquete web con Babel
fuente
Agregar es6 a webpack es un proceso de 3 pasos
En webpack.config.js agregue
fuente
No puedes Tienes que convertirlo a CommonJS, ya sea con
babel
oesm
.https://github.com/webpack/webpack-cli/issues/282
Pero puedes correr
webpack -r esm @babel/register
fuente