Comment utiliser ES6 dans webpack.config? Comme ce repo https://github.com/kriasoft/react-starter-kit fait?
Par exemple:
en utilisant cela
import webpack from 'webpack';
au lieu de
var webpack = require('webpack');
C'est plutôt une curiosité qu'un besoin.
which webpack
"Réponses:
Essayez de nommer votre configuration comme
webpack.config.babel.js
. Vous devriez avoir babel-register inclus dans le projet. Exemple sur react-router-bootstrap .Webpack s'appuie sur interpréter en interne pour que cela fonctionne.
la source
npm run
ce script:webpack --config webpack.config.babel.js
.--config
.babel-loader
module est également requisecho '{ "presets": ["es2015"] }' > .babelrc
Comme alternative à ce que suggère @bebraw, vous pouvez créer un script d'automatisation JavaScript avec la syntaxe ES6 +:
Et exécutez-le avec babel:
PS : L'appel de webpack via l'API JavaScript peut être une meilleure approche (qu'en l'appelant via une ligne de commande) lorsque vous devez implémenter des étapes de construction plus complexes. Par exemple, une fois que le bundle côté serveur est prêt, démarrez le serveur d'application Node.js et juste après le démarrage du serveur Node.js, lancez le serveur de développement BrowserSync.
Voir également:
package.json/scripts
,tools/bundle.js
,tools/webpack.config.js
)run.js
,webpack.config.js
,node run
)la source
Une autre approche est d'avoir un script NPM comme ceci:
"webpack": "babel-node ./node_modules/webpack/bin/webpack"
et l' exécuter comme ceci:npm run webpack
.la source
babel-node ./node_modules/webpack/bin/webpack --config custom-webpack.config
J'ai rencontré un problème lors de l'exécution de la solution de @ Juho avec Webpack 2. Les documents de migration de Webpack vous suggèrent de désactiver l'analyse du module babel:
Malheureusement, cela entre en conflit avec la fonctionnalité d'enregistrement automatique de babel. Suppression
de la config babel a remis les choses en marche. Cependant, cela entraînerait la rupture de l'arborescence, donc une solution complète impliquerait d' écraser les préréglages dans les options du chargeur :
Edit , 13 novembre 2017; mise à jour de l'extrait de configuration de webpack vers Webpack 3 (merci à @ x-yuri). Ancien extrait de Webpack 2:
la source
module:{rules: [{test: /\.js$/, include: path.resolve('src'), loader: 'babel-loader', options: {babelrc: false, presets: [['env', {modules: false}]]}}]}
( gist ).-loader
le suffixe n'est plus facultatif. Essayez d'éviterexclude
et préférezinclude
. Les chaînes incluses / exclues ne fonctionnent que si les chemins absolus.query
a été renommé enoptions
.{modules: false}
in.babelrc
puisse utiliserimport
's inwebpack.config.babel.js
.-loader
suffixe doit être ajouté à nouveau webpack.js.org/migrate/3/…C'est vraiment facile, mais ce n'était pas évident pour moi à partir de l'une des réponses, donc si quelqu'un d'autre est confus comme moi:
Ajoutez simplement
.babel
la partie de votre nom de fichier avant l'extension (en supposant que vous avezbabel-register
installé en tant que dépendance).Exemple:
la source
require
. C'est bizarre non?C'est ce qui a fonctionné pour moi en utilisant le webpack 4:
Dans
package.json
:Vous pouvez voir clairement comment chaque dépendance est utilisée, donc pas de surprise là-bas.
Remarque J'utilise
webpack-serve
--require , mais si vous souhaitez utiliser lawebpack
commande à la place, remplacez-la parwebpack --config-register
. Dans les deux cas,@babel/register
est nécessaire pour que cela fonctionne.Et c'est tout!
yarn dev
Et vous pouvez l'utiliser
es6
dans la config!Pour
webpack-dev-server
, utilisez l'--config-register
option qui est la même qu'avec lawebpack
commandeREMARQUE:
PAS besoin de renommer le fichier de configuration en
webpack.config.babel.js
(comme suggéré par la réponse acceptée).webpack.config.js
fonctionnera très bien.la source
--config-register
option. Aussi le dépôt pourwebpack-serve
déplacé ici: github.com/shellscape/webpack-servewebpack --config-register @babel/register --config webpack/development.config.js
j'ai dû spécifier --config car ma configuration webpack se trouve dans un dossier. Je vous remercie!Une autre façon consiste à utiliser l'argument require pour le nœud:
node -r babel-register ./node_modules/webpack/bin/webpack
Trouvé de cette façon dans la plaque de réaction électronique , regardez
build-main
etbuild-renderer
scripts.la source
Configuration pour Babel 7 et Webpack 4
package.json
.babelrc
webpack.config.babel.js
la source
Renommer
webpack.config.js
pourwebpack.config.babel.js
.Puis en .babelrc:
{"presets": ["es2015"]}
Cependant, si vous souhaitez utiliser une configuration babel différente pour babel-cli, votre .babelrc pourrait ressembler à ceci:
Et dans package.json:
C'est idiot mais le
{"modules": false}
webpack se cassera si vous n'utilisez pas différents envs.Pour plus d'informations sur .babelrc, consultez les documents officiels .
la source
Pour TypeScript : directement depuis https://webpack.js.org/configuration/configuration-languages/
puis passez à écrire votre, par exemple: webpack.config.ts
Vérifiez le lien pour plus de détails où vous pouvez utiliser un plugin pour avoir un fichier tsconfig séparé juste pour la configuration du webpack si vous ne ciblez pas commonjs (ce qui est une exigence pour que cela fonctionne car il repose sur ts-node).
la source
Je n'ai pas assez de représentants pour commenter, mais je voulais ajouter pour tous les utilisateurs de TypeScript une solution similaire à @Sandrik ci-dessus
J'ai deux scripts que j'utilise pointant vers des configurations webpack (fichiers JS) qui contiennent la syntaxe ES6.
"start-dev": "./node_modules/.bin/ts-node ./node_modules/webpack-dev-server/bin/webpack-dev-server.js --config ./webpack/webpack.config.dev.js"
et
"build": "./node_modules/.bin/ts-node ./node_modules/webpack/bin/webpack.js --config webpack/webpack.config.js"
la source
Ma meilleure approche avec le script npm est
et configurer le reste des scripts selon vos besoins pour Babel
la source
Après des tonnes de documents ...
Installez simplement le préréglage es2015 (pas env !!!) et ajoutez-le à
Renommez
webpack.config.js
àwebpack.config.babel.js
la source
Utilisation de Webpack 4 et Babel 7
Pour configurer un fichier de configuration de webpack pour utiliser ES2015, Babel nécessite:
Installer les dépendances dev:
Créez un
.babelrc
fichier:Créez votre config webpack,
webpack.config.babel.js
:Créez vos scripts dans
package.json
:Exécutez
npm run build
etnpm start
.La configuration du webpack est basée sur un exemple de projet avec la structure de répertoires suivante:
Exemple de projet: Langage de configuration Webpack utilisant Babel
la source
L'ajout d'es6 au webpack est un processus en 3 étapes
Dans webpack.config.js, ajoutez
la source
Tu ne peux pas. Vous devez le convertir en CommonJS, soit avec
babel
ouesm
.https://github.com/webpack/webpack-cli/issues/282
Mais tu peux courir
webpack -r esm @babel/register
la source