Maison interface Web tutoriel HTML Quoi de neuf dans webpack4 ? A quoi dois-je faire attention ?

Quoi de neuf dans webpack4 ? A quoi dois-je faire attention ?

Oct 18, 2018 pm 03:13 PM
webpack

Cet article vous apporte les nouveautés de webpack4 ? A quoi dois-je faire attention ? Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il vous sera utile.

Alors que les développeurs connaissent encore la rémanence de webpack3.x, webpack4.x est discrètement arrivé.

Pour les utilisateurs, les questions les plus attendues sont les suivantes :

  • Quels sont les changements dans la nouvelle version par rapport à l'ancienne version ?

  • Migration de webpack3.x vers webapck4.x ?

  • À quoi devons-nous faire attention lors de l'utilisation de webpack4.x ?

Nouvelles fonctionnalités de webpack

La puissance de webpack en tant qu'outil de build réside dans :

  • De nombreuses fonctionnalités uniques peuvent être configurées dans webpack.config.js

  • Sa configuration est flexible et modifiable

Mais à cause de cela, C'est aussi ça qui est mauvais. Parce qu'il est trop décontracté, il est difficile à contrôler, ce qui entraîne les problèmes suivants :

  • Le coût d'apprentissage, d'utilisation et de recherche du webpack est trop élevé (la courbe de progression est trop raide );

  • Construire une petite application nécessite également de configurer webpack.config.js comme construire une grande application (le moineau est petit mais possède tous les organes internes

  • ) ;

Et webpack4.x est un nouveau La version de première génération de webpack a grandement résolu les problèmes existants.

webpackk4.x n'a pas besoin d'utiliser le fichier de configuration webpack.config.js

Vous pouvez utiliser les 6 étapes suivantes pour terminer la construction du projet :

  1. Créez un répertoire de projet (webpack-demo), puis entrez dans le répertoire modifié

    mkdir webpack-demo && cd webpack-demo

  2. Initialisez le package Fichier .json

    npm init -y

  3. Charger les dépendances webpack et webpack-cli

    npm install webpack webpack-cli --save-dev

  4. Ajoutez le fichier ~/src/index.js au projet (index.js est le fichier d'entrée par défaut, et le répertoire d'entrée par défaut est ~/src. Bien sûr, vous pouvez également personnaliser le fichier d'entrée. Vous devez modifier la configuration principale dans package.json L'élément est le fichier spécifié)

le code du fichier index.js est le suivant :

console.log('hello webpack.')
Copier après la connexion

Ouvrez package.json et ajoutez le code suivant dans l'élément de configuration des scripts :

"scripts": {
    "build": "webpack"
}
Copier après la connexion

Remarque : il s'agit de la commande des scripts NPM

Exécutez la commande npm run build, puis vous verrez un fichier ~/dist/main.js dans le projet. Dans la fenêtre de commande, vous devriez remarquer l'invite d'avertissement suivante :

WARNING in configuration
The 'mode' option has not been set, webpack will fallback to 'production' for this value. Set 'mode' option to 'development' or 'production' to enable defaults for each environment.
You can also set it to 'none' to disable any default behavior. Learn more: https://webpack.js.org/concepts/mode/
Copier après la connexion

Ignorez ce message d'invite. Nous avons constaté que la configuration d'initialisation du projet de webpack4.x n'est pas très différente de webpack3.x, mais de webpack4. x Le fichier de configuration webpack.config.js nécessaire est manquant.

Modifications dans le mode d'empaquetage

Regardons le message d'invite ci-dessus. Cela signifie : "Si l'élément de configuration du mode d'empaquetage n'est pas défini, alors le mode d'empaquetage par défaut est le mode de production (production) et pour le mode de développement. (développement), vous devez configurer l'élément de configuration du mode. À ce stade, je pense que vos lecteurs devraient comprendre que webpack4 économise du temps et des efforts.

Mais dans les applications réelles, nous faisons souvent la distinction entre le mode développement et le mode production, mais ce n'est pas difficile dans webpack4.x. Modifiez simplement les scripts dans package.json comme suit :

"scripts": {
    "dev": "webpack --mode development", // 用于开发模式
    "build": "webpack --mode production" // 用于生产模式
}
Copier après la connexion
'Oui ! webpack4.x est aussi simple que cela. Nous n'avons pas besoin de définir deux fichiers de configuration respectivement pour le mode développement et le mode production comme webpack3.x.

Surcharger l'entrée/sortie de l'élément de configuration par défaut

Il n'y a pas de fichier de configuration webpack.config.js, ce qui non seulement réduit notre charge de travail de configuration, mais pose également quelques questions à nous qui n'en avons qu'un aperçu. Par exemple : Comment personnaliser l'entrée/sortie ?

En l'absence de webpack.config.js, on peut ajouter des éléments de configuration d'entrée/sortie dans la ligne de commande, le code est le suivant :

"scripts": {
    "dev": "webpack --mode development ./src/entry.js --output ./dist/bundle.js", // 用于开发模式
    "build": "webpack --mode production ./src/entry.js --output ./dist/bundle.min.js" // 用于生产模式
}
Copier après la connexion
Cela n'utilise tout simplement pas webpack .config.js.

Ce qui précède sont les changements globaux que webpack4.x nous a apportés.

Mais l'implémentation de la fonction dans les éléments de configuration du module et des plugins dans le fichier de configuration webpack.config.js d'origine nécessite toujours l'utilisation de webpack.config.js. Bien que le plan de l'équipe webpack soit de configurer certains chargeurs et plugins couramment utilisés, seul le plug-in intégré UglifyJSPlugin est implémenté, qui peut compresser le code *.js sans l'introduire en mode production. Les autres chargeurs et plugins ne peuvent être introduits que via webpack.config.js.

Migration du Webpack et précautions

En voyant ces changements dans webpack4.x, de nombreuses personnes ne se demanderont pas seulement si la migration de webpack3.x vers webpack4.x est facile. Problème , en fait, ce n'est pas gênant, webpack4.x est rétrocompatible avec webpack.3x.

Afin de ne pas introduire webpack.config.js plus tôt, nous avons utilisé des scripts npm, comme le rechargement d'entrée/sortie, nous pouvons également le compléter dans le fichier de configuration webpack.config.js. La configuration est la même que celle d'origine, mais webpack4.x présente les problèmes suivants qui nécessitent une attention :

  1. 升级到webpack4.x,你会发现在使用 extract-text-webpack-plugin 分离 *.css 出文件时经常出错,这是 extract-text-webpack-plugin 本身的问题,官方推荐使用 mini-css-extract-plugin 来避免问题的出现,但使用 mini-css-extract-plugin 有一个限制就是webapck须是4.2.0版本以上(较低的版本不支持)。

  2. 使用 使用babel-loader 转化ES6->ES5时将不需要 .babelrc 配置文件,你只需要在 package.json 的 scripts 中添加 --module-bind js=babel-loader 即可完成对 babel-loader 的配置。

其他的loader和plugin没有什么大的变化。其实讲到这里基本完了,下面是用webpack4.x构建的一个demo。

webpack4.x的demo

紧接上面的配置:

首先,添加 html-wepback-plugin 和 html-loader 依赖:

npm install html-webpack-plugin html-loader --save-dev
Copier après la connexion

html-webpack-plugin生成html文件(html文件用来加载打包生成 bundle.js 文件),当然你也可以使用webpack支持的各种模板loader,这里使用 html-loader 支持的 *.html 类型模板来生成。

其次,添加 mini-css-extract-plugincss-loader 依赖:

npm install mini-css-extract-plugin css-loader --save-dev
Copier après la connexion

loader和plugin配置与webpack3.x类同,也可参考下面提供代码中的 webpack.config.js 文件。

然后,添加 babel-loader 、@babel/babel-core 和 @babel/babel-preset 依赖:

npm install @babel/core babel-loader @babel/preset-env --save-dev
Copier après la connexion

loader和plugin配置与webpack3.x类同,也可参考下面提供源码中的 webpack.config.js 文件。

修改 package.json 中 scripts 如下:

"scripts": {
    "dev": "webpack --mode development --module-bind js=babel-loader  ./src/entry.js --output ./dist/bundle.js",
    "build": "webpack --mode production ./src/entry.js --module-bind js=babel-loader --output ./dist/bundle.min.js"
},
Copier après la connexion

最后,添加 webpack-dev-server 依赖,实现项目文件修改,浏览器及时刷新

npm install webpack-dev-server
Copier après la connexion

在 package.json 中 scripts 的 dev 替换 webpack 为 webpack-dev-server 即可,代码如下:

"scripts": {
    "dev": "webpack-dev-server --mode development --module-bind js=babel-loader ./src/entry.js --output ./dist/bundle.js",
    "build": "webpack --mode production ./src/entry.js --module-bind js=babel-loader --output ./dist/bundle.min.js"
},
Copier après la connexion

这样一个简单的demo就完成了。

其他的loader和plugin配置和webpack3.x类同。

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Tutoriel de démarrage VUE3 : empaquetage et création avec Webpack Tutoriel de démarrage VUE3 : empaquetage et création avec Webpack Jun 15, 2023 pm 06:17 PM

Vue est un excellent framework JavaScript qui peut nous aider à créer rapidement des applications Web interactives et efficaces. Vue3 est la dernière version de Vue, qui introduit de nombreuses nouvelles fonctionnalités et fonctionnalités. Webpack est actuellement l'un des packagers de modules et outils de construction JavaScript les plus populaires, qui peut nous aider à gérer diverses ressources dans nos projets. Cet article explique comment utiliser Webpack pour empaqueter et créer des applications Vue3. 1. Installez Webpack

Quelle est la différence entre vite et webpack Quelle est la différence entre vite et webpack Jan 11, 2023 pm 02:55 PM

Différences : 1. La vitesse de démarrage du serveur webpack est plus lente que celle de Vite ; car Vite n'a pas besoin d'être empaqueté au démarrage, il n'est pas nécessaire d'analyser les dépendances du module et de compiler, donc la vitesse de démarrage est très rapide. 2. La mise à jour à chaud de Vite est plus rapide que le webpack ; en termes de HRM de Vite, lorsque le contenu d'un certain module change, laissez simplement le navigateur demander à nouveau le module. 3. Vite utilise esbuild pour pré-construire les dépendances, tandis que webpack est basé sur le nœud. 4. L'écologie de Vite n'est pas aussi bonne que celle du webpack, et les chargeurs et plug-ins ne sont pas assez riches.

Comment utiliser PHP et Webpack pour le développement modulaire Comment utiliser PHP et Webpack pour le développement modulaire May 11, 2023 pm 03:52 PM

Avec le développement continu de la technologie de développement Web, la séparation front-end et back-end et le développement modulaire sont devenus une tendance répandue. PHP est un langage back-end couramment utilisé. Lors du développement modulaire, nous devons utiliser certains outils pour gérer et empaqueter les modules. Webpack est un outil d'empaquetage modulaire très facile à utiliser. Cet article explique comment utiliser PHP et Webpack pour le développement modulaire. 1. Qu'est-ce que le développement modulaire ? Le développement modulaire fait référence à la décomposition d'un programme en différents modules indépendants. Chaque module a sa propre fonction.

Comment Webpack convertit-il le module es6 en es5 ? Comment Webpack convertit-il le module es6 en es5 ? Oct 18, 2022 pm 03:48 PM

Méthode de configuration : 1. Utilisez la méthode d'importation pour placer le code ES6 dans le fichier de code js emballé ; 2. Utilisez l'outil npm pour installer l'outil babel-loader, la syntaxe est "npm install -D babel-loader @babel/core @babel/preset- env"; 3. Créez le fichier de configuration ".babelrc" de l'outil babel et définissez les règles de transcodage ; 4. Configurez les règles de packaging dans le fichier webpack.config.js.

Utilisez Spring Boot et Webpack pour créer des projets frontaux et des systèmes de plug-ins Utilisez Spring Boot et Webpack pour créer des projets frontaux et des systèmes de plug-ins Jun 22, 2023 am 09:13 AM

Alors que la complexité des applications Web modernes continue d’augmenter, la création d’excellents systèmes d’ingénierie frontale et de plug-ins devient de plus en plus importante. Avec la popularité de Spring Boot et Webpack, ils sont devenus une combinaison parfaite pour créer des projets frontaux et des systèmes de plug-ins. SpringBoot est un framework Java qui crée des applications Java avec des exigences de configuration minimales. Il fournit de nombreuses fonctionnalités utiles, telles que la configuration automatique, afin que les développeurs puissent créer et déployer des applications Web plus rapidement et plus facilement. W

Qu'est-ce que Webpack ? Explication détaillée de son fonctionnement ? Qu'est-ce que Webpack ? Explication détaillée de son fonctionnement ? Oct 13, 2022 pm 07:36 PM

Webpack est un outil de packaging de modules. Il crée des modules pour différentes dépendances et les regroupe tous dans des fichiers de sortie gérables. Ceci est particulièrement utile pour les applications d'une seule page (le standard de facto pour les applications Web aujourd'hui).

Quels fichiers le package Vue Webpack peut-il contenir ? Quels fichiers le package Vue Webpack peut-il contenir ? Dec 20, 2022 pm 07:44 PM

En vue, webpack peut regrouper des fichiers js, css, images, json et autres dans des formats appropriés pour une utilisation par le navigateur. Dans webpack, js, css, images, json et d'autres types de fichiers peuvent être utilisés comme modules. Diverses ressources de module dans webpack peuvent être regroupées et fusionnées en un ou plusieurs packages, et pendant le processus de packaging, les ressources peuvent être traitées, comme la compression d'images, la conversion de scss en css, la conversion de la syntaxe ES6 en ES5, etc., qui peuvent être reconnu par le type de fichier HTML.

Comment installer Webpack dans vue Comment installer Webpack dans vue Jul 25, 2022 pm 03:27 PM

Webpack dans vue est installé à l'aide du gestionnaire de packages de nœuds "npm" ou de l'image npm "cnpm". Webpack est un outil d'empaquetage de modules statiques pour les applications JavaScript modernes. Il est développé sur la base de node.js. Il nécessite la prise en charge du composant node.js lors de son utilisation. Il doit être installé à l'aide de npm ou cnpm. g" ou "cnpm install webpack -g".

See all articles