この記事では、webpack で一般的に使用される 3 つの JS 圧縮プラグインを詳しく紹介します。一定の参考値があるので、困っている友達が参考になれば幸いです。
# # サポート:
babel present2015、webpack3欠点:
シングルスレッドの圧縮コードを使用します、つまり、複数の js ファイルを圧縮する必要がある場合、1 つずつ圧縮する必要があります。したがって、正式な環境でのコードのパッケージ化と圧縮は非常に時間がかかります (JS コードを圧縮するには、まずコードをオブジェクト抽象化で表される AST 構文ツリーに解析し、次にさまざまなルールを適用して AST を分析および処理する必要があるため、このプロセスに非常に時間がかかります) -消費する) 。
利点:
古いプロジェクトのサポート (IOS10 と互換性あり)使用法:
npm i uglifyjs-webpack - plugin
module.exports = { plugins: [ new webpack.optimize.UglifyJsPlugin({ sourceMap: true, compress: { warnings: false } }), ] }
[推奨学習:
JavaScript 上級チュートリアル](2) webpack-Parallel-uglify-plugin
サポート:
babel7、webpack4##欠点:
古いプロジェクトではサポートされていません (IOS10 と互換性がありません) )
利点:
ParallelUglifyPlugin プラグインは複数のサブプロセスを開き、複数のファイルの圧縮作業を複数のサブプロセスに割り当てて完了しますが、それぞれサブプロセスは引き続き UglifyJS 解凍コードを渡します。圧縮する必要があるのは並列処理にすぎず、複数のサブタスクを並列処理するとさらに効率が向上します。
使用法:1、npm i -D webpack-Parallel-uglify-plugin
2、 webpack.config.js
File
// 引入 ParallelUglifyPlugin 插件 const ParallelUglifyPlugin = require('webpack-parallel-uglify-plugin'); module.exports = { plugins: [ // 使用 ParallelUglifyPlugin 并行压缩输出JS代码 new ParallelUglifyPlugin({ // 传递给 UglifyJS的参数如下: uglifyJS: { output: { /* 是否输出可读性较强的代码,即会保留空格和制表符,默认为输出,为了达到更好的压缩效果, 可以设置为false */ beautify: false, /* 是否保留代码中的注释,默认为保留,为了达到更好的压缩效果,可以设置为false */ comments: false }, compress: { /* 是否在UglifyJS删除没有用到的代码时输出警告信息,默认为输出,可以设置为false关闭这些作用 不大的警告 */ warnings: false, /* 是否删除代码中所有的console语句,默认为不删除,开启后,会删除所有的console语句 */ drop_console: true, /* 是否内嵌虽然已经定义了,但是只用到一次的变量,比如将 var x = 1; y = x, 转换成 y = 5, 默认为不 转换,为了达到更好的压缩效果,可以设置为false */ collapse_vars: true, /* 是否提取出现了多次但是没有定义成变量去引用的静态值,比如将 x = 'xxx'; y = 'xxx' 转换成 var a = 'xxxx'; x = a; y = a; 默认为不转换,为了达到更好的压缩效果,可以设置为false */ reduce_vars: true } } }), ] }
3. 説明
test: 通常のルールを使用して、ParallelUglifyPlugin によって圧縮する必要があるファイルを照合します。デフォルトは次のとおりです。 /.js$ /.
include: 正規表現を使用して、ParallelUglifyPlugin によって圧縮されたファイルを含めます。デフォルトは [].
exclude:正規表現を使用してファイルを除外する ParallelUglifyPlugin によって圧縮されたファイル、デフォルトは [].
cacheDir: 圧縮結果をキャッシュします。次回同じ入力が発生したとき、圧縮結果は直接キャッシュされます。キャッシュから取得されて返されます。cacheDir
# は、キャッシュが保存されるディレクトリ パスを構成するために使用されます。デフォルトではキャッシュされませんので、キャッシュを有効にする場合はディレクトリパスを設定してください。
workerCount: 複数の子プロセスを開始して、圧縮を同時に実行します。デフォルトは、現在実行中のコンピュータの CPU コア数から 1 を引いた値です。
-
sourceMap: 圧縮コードに対応するソース マップを生成するかどうか。デフォルトでは生成されません。オンにすると、消費時間が大幅に増加します。一般的に、圧縮コードは
sourceMap は Web サイト ユーザーのブラウザに送信されません。
uglifyJS: ES5 コード、オブジェクト タイプを圧縮する際の構成に使用され、UglifyJS パラメーターに直接透過的に渡されます。
uglifyES: ES6 コードを圧縮する際の設定に使用され、オブジェクト タイプで、UglifyES のパラメータに直接透過的に渡されます。
-
4. ParallelUglifyPlugin の実際の列には、以下のパラメータ設定項目があります:
new ParallelUglifyPlugin({ uglifyJS: {}, test: /.js$/g, include: [], exclude: [], cacheDir: '', workerCount: '', sourceMap: false });
5. github アドレス (https://github.com/gdborton/webpack-Parallel) - uglify-plugin)
(3) terser-webpack-plugin
サポート:
babel7, webpack4##欠点:
古いプロジェクトではサポートされていません (IOS10 と互換性がありません)
利点:
ParallelUglifyPlugin と同様に、複数のサブタスクが並列処理され、さらに効率が向上します。
- webpack4 は誰かによって正式に推奨され、保守されています。
使用:
npm install terser-webpack-plugin --save-dev
optimization: { minimize: true, minimizer: [ new TerserPlugin({ terserOptions: { ecma: 5, warnings: false, parse: {}, compress: {}, mangle: true, // Note `mangle.properties` is `false` by default. module: false, output: null, toplevel: false, nameCache: null, ie8: false, keep_fnames: false, safari10: true } }) ] }github アドレス: https://github.com/webpack-contrib/terser-webpack-plugin
プログラミング関連の知識について詳しくは、
プログラミング ビデオをご覧ください。 !
以上がWebpackでよく使われる3つのJS圧縮プラグインを詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

現実世界におけるJavaScriptのアプリケーションには、サーバー側のプログラミング、モバイルアプリケーション開発、モノのインターネット制御が含まれます。 2。モバイルアプリケーションの開発は、ReactNativeを通じて実行され、クロスプラットフォームの展開をサポートします。 3.ハードウェアの相互作用に適したJohnny-Fiveライブラリを介したIoTデバイス制御に使用されます。

私はあなたの日常的な技術ツールを使用して機能的なマルチテナントSaaSアプリケーション(EDTECHアプリ)を作成しましたが、あなたは同じことをすることができます。 まず、マルチテナントSaaSアプリケーションとは何ですか? マルチテナントSaaSアプリケーションを使用すると、Singの複数の顧客にサービスを提供できます

この記事では、許可によって保護されたバックエンドとのフロントエンド統合を示し、next.jsを使用して機能的なedtech SaaSアプリケーションを構築します。 FrontEndはユーザーのアクセス許可を取得してUIの可視性を制御し、APIリクエストがロールベースに付着することを保証します

JavaScriptは、現代のWeb開発のコア言語であり、その多様性と柔軟性に広く使用されています。 1)フロントエンド開発:DOM操作と最新のフレームワーク(React、Vue.JS、Angularなど)を通じて、動的なWebページとシングルページアプリケーションを構築します。 2)サーバー側の開発:node.jsは、非ブロッキングI/Oモデルを使用して、高い並行性とリアルタイムアプリケーションを処理します。 3)モバイルおよびデスクトップアプリケーション開発:クロスプラットフォーム開発は、反応および電子を通じて実現され、開発効率を向上させます。

JavaScriptの最新トレンドには、TypeScriptの台頭、最新のフレームワークとライブラリの人気、WebAssemblyの適用が含まれます。将来の見通しは、より強力なタイプシステム、サーバー側のJavaScriptの開発、人工知能と機械学習の拡大、およびIoTおよびEDGEコンピューティングの可能性をカバーしています。

JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

Pythonはデータサイエンスや機械学習により適していますが、JavaScriptはフロントエンドとフルスタックの開発により適しています。 1. Pythonは、簡潔な構文とリッチライブラリエコシステムで知られており、データ分析とWeb開発に適しています。 2。JavaScriptは、フロントエンド開発の中核です。 node.jsはサーバー側のプログラミングをサポートしており、フルスタック開発に適しています。

JavaScriptは、最新のブラウザにすでに組み込まれているため、インストールを必要としません。開始するには、テキストエディターとブラウザのみが必要です。 1)ブラウザ環境では、タグを介してHTMLファイルを埋め込んで実行します。 2)node.js環境では、node.jsをダウンロードしてインストールした後、コマンドラインを介してJavaScriptファイルを実行します。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

WebStorm Mac版
便利なJavaScript開発ツール

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。
