ホームページ ウェブフロントエンド jsチュートリアル webpack3.x の移行とアップグレード

webpack3.x の移行とアップグレード

Jun 13, 2018 am 11:47 AM
4 webpack

今回は webpack3.x の移行とアップグレードについて説明します。webpack3.x の移行とアップグレードの注意点は何ですか? 以下は実際的なケースです。

余談: 0 の設定は非常にギミックが多く、基本的にほとんどのユーザーのニーズを満たすことができないため、見ないでください。ただし、デフォルトの設定を追加すると、ユーザーにとってはより便利になります。箱から出して使用。結局のところ、以前は、パーセルの 0 構成が Webpack の脚光を浴びました。その後、私は、パーセル + vue を使用したパーセルの単純なテンプレート プロジェクトにも取り組みました。興味があれば、ご覧ください。

1. webpack 4 の新機能

0。インストール

は、webpack をインストールするだけではなく、webpack-cli: <code>webpack即可,还需要安装一个webpack-cli

全局安装

sudo npm install -g webpack webpack-cli
ログイン後にコピー

局部安装(当前文件夹)

npm install --save-dev webpack webpack-cli
ログイン後にコピー

1. 0配置

默认的入口为 './src/' 和默认出口 './dist'

对压缩(optimization.minimize)的设置,默认在production时开启,在development时关闭。

默认配置不仅限于上述两项。

2. mode/–mode参数

新增了mode/--mode参数来表示是开发还是生产,mode有两个可选值:development和production,production不支持监听,production侧重于打包后的文件大小,development侧重于构建的速度。

webpack --mode development
ログイン後にコピー

也可以在配置文件中配置:

// webpack.config.js
module.exports = {
 mode: "production",
 // ...
}
ログイン後にコピー

3. 对uglifyjs升级

在之前的vue脚手架创建的基于webpack的工程,在webpack.prod.conf.js

グローバルインストール
class user {
 getUsername() {
  // to do
 }
}
ログイン後にコピー

部分インストール(現在のフォルダー)

rules: [
 {
  test: /\.json$/,
  type: "javascript/auto"
 }
]
ログイン後にコピー

1.0構成

デフォルトのエントリは './src/' で、デフォルトの終了はです。 > './dist';

圧縮の設定 (optimization.minimize) は、運用中はデフォルトでオンになり、開発中はオフになります。

デフォルトの設定は上記の2項目に限定されません。

2. mode/--mode パラメーター

mode/--mode パラメーターは、開発か本番かを示すために追加されます。モードには、開発と本番の 2 つのオプションの値があります。ファイルサイズの次に開発はビルド速度に重点を置きます。

let jsonData = require('./data.json');
import jsonData from './data.json'
import { first } from './data.json'
ログイン後にコピー
は構成ファイルでも構成できます:

npm install -g webpack webpack-cli
npm install --save-dev webpack webpack-cli
ログイン後にコピー
ログイン後にコピー

3. uglifyjs をアップグレードします

以前の vue スキャフォールディングによって作成された webpack ベースのプロジェクトは、webpack.prod.conf.js にあります。設定で次の行がはっきりとわかります:

// UglifyJs は ES6+ をサポートしていません。ツリーシェイクを改善するために babel-minify を使用することもできます: https://github.com/babel/minify

in webpack4 .0すでに次のような es6 コードを圧縮できます:

const webpack = require('webpack');
new webpack.optimize.SplitChunksPlugin({
 chunks: "all",
 minSize: 30000,
 minChunks: 1,
 maxAsyncRequests: 5,
 maxInitialRequests: 3,
 name: true,
 cacheGroups: {
  default: {
   minChunks: 2,
   priority: -20,
   reuseExistingChunk: true,
  },
  vendors: {
   test: /[\/]node_modules[\/]/,
   priority: -10
  }
 }
})
ログイン後にコピー

圧縮後は、次のようになります:

4. ローダーを削除するには、ルールを使用する必要があります

webpack3.x では、以前のバージョンのローダーがまだ保持されています。 、およびルール 新しいバージョンでは、ローダーが完全に削除され、ルールを使用する必要があります。

5.sideEffects

モジュールのpackage.jsにsideEffects:falseを追加します。exportを使用して個別にエクスポートすると、export以外のファイルがパッケージ化されなくなり、パッケージ化されたファイルが小さくなります。

関連リンク: https://github.com/webpack/webpack/tree/master/examples/side-Effects

6. webpack4 は複数の形式のモジュール タイプをサポートしていますが、調整のためにタイプを追加する必要がある場合があります


CommonJS、AMD、ESM の 3 種類のモジュールの場合は javascript/auto を使用します。

EcmaScript モジュール (.mjs) の場合は javascript/esm を使用します。他のモジュール タイプは無効です。 CommonJS および EcmaScript モジュールのみが使用できません。javascript/dynamic を使用します。🎜🎜 json タイプのファイルの場合は、require および import を使用して json をインポートできます。Webassembly の場合は、webassembly/experimental を使用します。 - 公式には実験的な機能と言われています。 🎜🎜例: 🎜rrreee🎜🎜7. JSON ファイルの ES6 インポートをサポートし、無駄なコードをフィルタリングできます 🎜🎜🎜 json ファイルをインポートするには、次の 3 つの方法があります: 🎜rrreee🎜 import { first } from ' によって導入された json ファイル./data.json」はインポートされていないコードを無視し、最初のコードのみがパッケージ化時に含まれます。 🎜🎜🎜8. CommonsChunkPlugin を削除し、optimization.splitChunks と optimization.runtimeChunk に置き換えます🎜🎜🎜 内容が多いので詳しくは紹介しません。将来については、3 以降で説明します。移行時に簡単な説明があります。

二、webpack 3.X 迁移到 webpack4.X

1. 更新webpack依赖

npm install -g webpack webpack-cli
npm install --save-dev webpack webpack-cli
ログイン後にコピー
ログイン後にコピー

2. 更新对应模块

在webpack升级的同时,对应的许多依赖也需要相应的进行升级,下面是在vuec-cli的脚手架中需要的更新;对于其他工程,注意看控制台的报错,是哪个插件报的错就去升级那个插件,如果存在找不到模块之类的错误就去升级对应的loader。

html-webpack-plugin => npm i -D html-webpacl-plugin

webpack-dev-server或者改为webpack-serve => npm i -D webpack-dev-server/npm i -D webpack-serve

vue-loader => npm i -D vue-loader

extract-text-webpack-plugin@next => npm i -D extract-text-webpack-plugin@next <br>…

3. 使用mode/–mode

在命令中加入--mode development/ --mode production或者在配置文件中加入mode: 'development'/mode: 'production'。

4. 如果使用CommonsChunkPlugin替换为optimization.splitChunks

使用栗子:

const webpack = require('webpack');
new webpack.optimize.SplitChunksPlugin({
 chunks: "all",
 minSize: 30000,
 minChunks: 1,
 maxAsyncRequests: 5,
 maxInitialRequests: 3,
 name: true,
 cacheGroups: {
  default: {
   minChunks: 2,
   priority: -20,
   reuseExistingChunk: true,
  },
  vendors: {
   test: /[\\/]node_modules[\\/]/,
   priority: -10
  }
 }
})
ログイン後にコピー

写在后面

对于webpack的这次升级这里没有一一列举,选了几个相对关键的点,具体可以去看这里;有关从webpack3.x迁移到新版的时候可能还有其他的坑需要慢慢去趟,目前遇到的基本都解决了。

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

vue+update()使用详解

具体分析webpack样式加载

以上がwebpack3.x の移行とアップグレードの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

VUE3 入門チュートリアル: Webpack を使用したパッケージ化とビルド VUE3 入門チュートリアル: Webpack を使用したパッケージ化とビルド Jun 15, 2023 pm 06:17 PM

Vue は、インタラクティブで効率的な Web アプリケーションを迅速に構築するのに役立つ優れた JavaScript フレームワークです。 Vue3 は、多くの新機能が導入された Vue の最新バージョンです。 Webpack は現在最も人気のある JavaScript モジュール パッケージャーおよびビルド ツールの 1 つで、プロジェクト内のさまざまなリソースの管理に役立ちます。この記事では、Webpack を使用して Vue3 アプリケーションをパッケージ化してビルドする方法を紹介します。 1.Webpackをインストールする

vite と webpack の違いは何ですか vite と webpack の違いは何ですか Jan 11, 2023 pm 02:55 PM

相違点: 1. Webpack サーバーの起動速度は Vite より遅いですが、Vite は起動時にパッケージ化する必要がなく、モジュールの依存関係を解析してコンパイルする必要がないため、起動速度が非常に速くなります。 2. Vite ホット アップデートは webpack よりも高速です。Vite の HRM の観点から、特定のモジュールのコンテンツが変更された場合、ブラウザーにモジュールを再リクエストさせるだけです。 3. Vite は esbuild を使用して依存関係を事前構築しますが、webpack はノードに基づいています。 4. Vite のエコロジーは webpack ほど良くなく、ローダーとプラグインが十分に豊富ではありません。

モジュール開発に PHP と webpack を使用する方法 モジュール開発に PHP と webpack を使用する方法 May 11, 2023 pm 03:52 PM

Web 開発テクノロジーの継続的な発展に伴い、フロントエンドとバックエンドの分離とモジュール開発が広く普及する傾向になりました。 PHP は一般的に使用されるバックエンド言語です。モジュラー開発を行う場合、モジュールの管理とパッケージ化にいくつかのツールを使用する必要があります。Webpack は非常に使いやすいモジュラー パッケージング ツールです。この記事では、モジュール開発に PHP と webpack を使用する方法を紹介します。 1. モジュラー開発とは何ですか? モジュラー開発とは、プログラムを、それぞれが独自の機能を持つ独立したモジュールに分解することを指します。

Webpack はどのように es6 モジュールを es5 モジュールに変換しますか? Webpack はどのように es6 モジュールを es5 モジュールに変換しますか? Oct 18, 2022 pm 03:48 PM

設定方法: 1. import メソッドを使用して ES6 コードをパッケージ化された js コード ファイルに配置します; 2. npm ツールを使用して babel-loader ツールをインストールします。構文は「npm install -D babel-loader @babel/core」です。 @babel/preset-env"; 3. babel ツールの構成ファイル「.babelrc」を作成し、トランスコーディング ルールを設定します。 4. webpack.config.js ファイルでパッケージ化ルールを構成します。

Spring Boot と Webpack を使用してフロントエンド プロジェクトとプラグイン システムを構築する Spring Boot と Webpack を使用してフロントエンド プロジェクトとプラグイン システムを構築する Jun 22, 2023 am 09:13 AM

最新の Web アプリケーションの複雑さが増すにつれて、優れたフロントエンド エンジニアリングとプラグイン システムを構築することがますます重要になっています。 Spring Boot と Webpack の人気により、これらはフロントエンド プロジェクトとプラグイン システムを構築するための完璧な組み合わせになりました。 SpringBoot は、最小限の構成要件で Java アプリケーションを作成する Java フレームワークです。自動構成などの多くの便利な機能を提供するため、開発者は Web アプリケーションをより迅速かつ簡単に構築および展開できます。 W

vwebpack パッケージに使用できるファイルは何ですか? vwebpack パッケージに使用できるファイルは何ですか? Dec 20, 2022 pm 07:44 PM

vue では、webpack は js、css、ピクチャ、json、その他のファイルをブラウザで使用できる適切な形式にパッケージ化できます。webpack では、js、css、ピクチャ、json、その他のファイル タイプをモジュールとして使用できます。 Webpack のさまざまなモジュール リソースは、パッケージ化して 1 つ以上のパッケージにマージでき、パッケージ化プロセス中に、画像の圧縮、scss から css への変換、ES6 構文から ES5 への変換などのリソースを処理できます。 HTMLで認識されるファイルタイプ。

ウェブパックとは何ですか?仕組みの詳しい説明は? ウェブパックとは何ですか?仕組みの詳しい説明は? Oct 13, 2022 pm 07:36 PM

Webpack はモジュールのパッケージ化ツールです。さまざまな依存関係のモジュールを作成し、それらをすべて管理可能な出力ファイルにパッケージ化します。これは、単一ページ アプリケーション (今日の Web アプリケーションの事実上の標準) に特に役立ちます。

パッケージ化プロセスと webpack の原則の詳細な分析 パッケージ化プロセスと webpack の原則の詳細な分析 Aug 09, 2022 pm 05:11 PM

Webpack はどのようにパッケージ化を実装しますか?次の記事では、Webpack のパッケージ化原則について詳しく説明します。お役に立てば幸いです。

See all articles