ホームページ >ウェブフロントエンド >jsチュートリアル >webpack が js および css ファイルをパッケージ化する方法

webpack が js および css ファイルをパッケージ化する方法

php中世界最好的语言
php中世界最好的语言オリジナル
2018-06-15 11:28:591525ブラウズ

今回は、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 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']  //混淆,并排除关键字
    })
  ]
};
この記事の事例を読んだ後は、この方法をマスターしたと思います。関連記事はphp中国語サイトにあります!

推奨読書:

vue-router でクエリ動的パラメータ転送を処理する方法

webpack+vue 環境 LAN の使用方法

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

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