ホームページ  >  記事  >  ウェブフロントエンド  >  webpack が js と css をパッケージ化して圧縮する方法の例

webpack が js と css をパッケージ化して圧縮する方法の例

亚连
亚连オリジナル
2018-05-25 16:49:261674ブラウズ

この記事では主に、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 using using ‐ ‐ ‐ ‐ ‐ ‐ –

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

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

AST AST 標準入力、

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']  //混淆,并排除关键字
    })
  ]
};

ここで注意する必要があるのは、$ やrequire を混同すると、コードの通常の動作に影響します。

圧縮時に共通するいくつかの属性を列挙します:

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

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

警告 -- 無駄なコードを削除すると、警告が表示されます

上記は、皆さんのためにまとめたものです。将来皆さんのお役に立てれば幸いです。

関連記事:

ネイティブ ajax を使用して json 文字列を処理する方法

    jQuery での ajax の 4 つの一般的なリクエスト メソッドの紹介
  1. ajax がオブジェクトを返す簡単な解決策

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

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