ホームページ  >  記事  >  ウェブフロントエンド  >  webpackでjsやcssをパッケージ化・圧縮する手順を詳しく解説

webpackでjsやcssをパッケージ化・圧縮する手順を詳しく解説

php中世界最好的语言
php中世界最好的语言オリジナル
2018-05-04 09:14:413428ブラウズ

今回は、webpack で js と css をパッケージ化して圧縮する手順について詳しく説明します。webpack で js と css をパッケージ化して圧縮する際の 注意事項 は何ですか?実際のケースを見てみましょう。

js と css をパッケージ化して圧縮します

webpack 自体が UglifyJS プラグイン (webpack.optimize.UglifyJsPlugin) を統合して JS と CSS の圧縮と難読化を完了するため、追加のプラグインを参照する必要はありません,

コマンド webpack -p は、UglifyJS を呼び出してコードを圧縮することを意味し、html-webpack-plugin などの多くの webpack プラグインもデフォルトで UglifyJS を使用します。

uglify-js のリリースバージョンは ES5 のみをサポートしています。ES6+ コードを圧縮したい場合は、開発ブランチを使用してください。

UglifyJS で利用可能なオプションは次のとおりです:

parse use using use using ' s ' s ' s ‐ ‐ ‐ ‐ ‐ parseへ

CLI コマンドラインツールを使用する

sourcemap lugin でコンパイルされたコード Web デバッグに使用されるソース コードのマッピング

AST

AST を使用して使用するの ' ' から ‐to ‐ ‐‐‐under ‐、

から

STDIN 標準入力は、

STDOUT をコマンドラインに直接入力することを指します。 標準出力

STDERR :

//使用插件html-webpack-plugin打包合并html
//使用插件extract-text-webpack-plugin打包独立的css
//使用UglifyJsPlugin压缩代码
var HtmlWebpackPlugin = require('html-webpack-plugin');
var ExtractTextPlugin = require('extract-text-webpack-plugin');
var webpack = require("webpack");
module.exports = {
  entry: {
    bundle : './src/js/main.js'
  },
  output: {
    filename: "[name]-[hash].js",
    path: dirname + '/dist'
  },
  module: {
    rules: [
      {
        test: /\.css$/,
        use: ExtractTextPlugin.extract({
          fallback: "style-loader",
          use: "css-loader"
        })
      },
      {
        test: /\.(png|jpg|jpeg|gif)$/,
        use: 'url-loader?limit=8192'
      }
    ]
  },
  resolve:{
      extensions:['.js','.css','.json'] //用于配置程序可以自行补全哪些文件后缀
  },
  plugins:[
    new HtmlWebpackPlugin({
      title: 'hello webpack',
      template:'src/component/index.html',
      inject:'body',
      minify:{ //压缩HTML文件
         removeComments:true,  //移除HTML中的注释
         collapseWhitespace:true  //删除空白符与换行符
       }
    }),
    new ExtractTextPlugin("[name].[hash].css"),
    new webpack.optimize.UglifyJsPlugin({
      compress: {   //压缩代码
        dead_code: true,  //移除没被引用的代码
        warnings: false,   //当删除没有用处的代码时,显示警告
        loops: true //当do、while 、 for循环的判断条件可以确定是,对其进行优化
      },
      except: ['$super', '$', 'exports', 'require']  //混淆,并排除关键字
    })
  ]
};
ここで、いくつかのキーワードは圧縮中に除外する必要があり、混同できないことに注意してください。 as $ または require を混同すると、コードの通常の動作に影響します。 圧縮時に共通するいくつかの属性を列挙します:

dead_code -- 引用符で囲まれていないコードを削除します。

loops -- do、while、for ループの判定条件が決定できたら、それらを最適化します。

警告 -- 不要なコードを削除する場合、警告が表示されます

この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、PHP に関する他の関連記事に注目してください。中国語のサイトです!

推奨読書:

    Nodejsのパスワード暗号化処理方法まとめ
  1. Vueデータ転送方法まとめ

  2. ng-repeatレンダリングが完了したことを確認する方法

以上がwebpackでjsやcssをパッケージ化・圧縮する手順を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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