国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

一起來了解下這些webpack常用插件

makeFoxPlay / 1573人閱讀

摘要:前言對于的配置以及常用模塊大家應該都比較熟悉,本文將說一說的一些常用插件,以及用法。如果在一個前面加了它會被定義為調用。或者被模塊的導出的內容所賦值,以支持命名導出。用于生成的文檔的標題默認為將寫入的文件默認模板的相對或絕對路徑。

前言
對于webpack的配置以及常用模塊大家應該都比較熟悉,本文將說一說webpack的一些常用插件,以及用法。
目錄

1.內置插件

名稱 參數 說明 用法
DefinePlugin Object 編譯時配置的全局常量,開發模式和發布模式的構建允許不同的行為非常有用 DefinePlugin
HotModuleReplacementPlugin - 熱更新模塊
NoEmitOnErrorsPlugin - 打包出錯時不把錯誤輸出到文件
NamedModulesPlugin - 顯示模塊相對路徑
ProvidePlugin - 自動加載模塊 ProvidePlugin
PrefetchPlugin context: 目錄的絕對路徑,request: 模塊路徑 預加載模塊請求

2.其他插件

名稱 參數 說明 用法
CopyWebpackPlugin Array 拷貝文件夾或文件到指定目錄 CopyWebpackPlugin
HtmlWebpackPlugin - 在編譯目錄下生成html,并將打包后的js文件插入script標簽中 HtmlWebpackPlugin
ExtractTextPlugin - 把打包文件中的文本提取到一個文件 ExtractTextPlugin
OptimizeCSSPlugin - 優化壓縮css文件 OptimizeCSSPlugin
UglifyJsPlugin - 壓縮JavaScript文件 UglifyJsPlugin
WebpackDevServer 提供了一個簡單的 web server,并且具有 live reloading(實時重新加載) 功能 WebpackDevServer
WebpackHotMiddleware 把 webpack 處理過的文件發送到一個 server webpackHotMiddleware
用法介紹 DefinePlugin

如果這個值是一個字符串,它會被當作一個代碼片段來使用。

如果這個值不是字符串,它會被轉化為字符串(包括函數)。

如果這個值是一個對象,它所有的 key 會被同樣的方式定義。

如果在一個 key 前面加了 typeof,它會被定義為 typeof 調用。

new webpack.DefinePlugin({
  PRODUCTION: JSON.stringify(true),
  VERSION: JSON.stringify("5fa3b9"),
  BROWSER_SUPPORTS_HTML5: true,
  TWO: "1+1",
  "typeof window": JSON.stringify("object"),
  "process.env.NODE_ENV": JSON.stringify(process.env.NODE_ENV)
});
console.log("Running App version " + VERSION);
if(!BROWSER_SUPPORTS_HTML5) require("html5shiv");
ProvidePlugin

自動加載模塊,而不必到處 import 或 require 。
任何時候,當 identifier 被當作未賦值的變量時,module 就會自動被加載,并且 identifier 會被這個 module 導出的內容所賦值。(或者被模塊的 property 導出的內容所賦值,以支持命名導出(named export))。

new webpack.ProvidePlugin({
  identifier: "module1",
  // ...
});

new webpack.ProvidePlugin({
  identifier: ["module1", "property1"],
  // ...
});

對于 ES2015 模塊的 default export,你必須指定模塊的 default 屬性。

CopyWebpackPlugin

拷貝文件夾或文件到指定目錄

const CopyPlugin = require("copy-webpack-plugin");

module.exports = {
  plugins: [
    new CopyPlugin([
      { from: "source", to: "dest" },
      { 
          from: "other",
          to: "public",
          ignore: ["*.js"],
          flatten: false,  //僅復制文件。用于文件夾和文件同名時
      },
    ]),
  ],
};https://webpack.docschina.org/plugins/copy-webpack-plugin/#ignore

查看更多

HtmlWebpackPlugin

該插件將為你生成一個HTML文件,其中包括使用script標簽中引入webpack打包js。
如果你有多個webpack入口點,他們都會在生成的HTML文件中的script標簽內。
如果你有任何CSS assets在webpack的輸出中(例如,利用MiniCssExtractPlugin提取 CSS),那么這些將被包含在HTML head中的標簽內。

    new HtmlWebpackPlugin({
      title: "Webpack App"  //用于生成的HTML文檔的標題 默認為Webpack App
      filename: "index.html", //將HTML寫入的文件 默認index.html
      template: "index.html", //webpack模板的相對或絕對路徑。默認src/index.ejs
      //template: path.resolve(__dirname, "../index.ejs"),
      inject: true, //true || "head" || "body" || false  打包后的js引入位置 body/head
      favicon: String,
      meta: Object,
      base: Object|String|false,
      showErrors: Boolean, //將它錯誤信息寫入頁面
    }),
ExtractTextPlugin

把打包文件中的文本提取到一個文件通常用于提取css

//webpack4
module: {
  rules: [
    {
      test: /.css$/,
       use: ExtractTextPlugin.extract({
         fallback: "style-loader",
         use: "css-loader",
         publicPath: "/dist"
       })
    }
  ]
}

plugins: [
   new ExtractTextPlugin({
     filename: "bundle.css",
     disable: false,
     allChunks: true
   })
]
OptimizeCSSPlugin
    new OptimizeCssAssetsPlugin({
      assetNameRegExp: /.optimize.css$/g,
      cssProcessor: require("cssnano"),
      cssProcessorPluginOptions: {
        preset: ["default", { discardComments: { removeAll: true } }],
      },
      canPrint: true
    })
UglifyJsPlugin
    new UglifyJsPlugin({
      uglifyOptions: {
        compress: {
          warnings: false
        }
      },
      sourceMap: true,
      parallel: true
    }),
WebpackDevServer

提供了一個簡單的 web server,并且具有 live reloading(實時重新加載) 功能

module.exports = {
    devServer: {
      contentBase: "./dist"
    }
  };

查看詳細配置

WebpackHotMiddleware
const express = require("express");
const webpack = require("webpack");
const webpackDevMiddleware = require("webpack-dev-middleware");

const app = express();
const config = require("./webpack.config.js");
const compiler = webpack(config);

// 告訴 express 使用 webpack-dev-middleware,
// 以及將 webpack.config.js 配置文件作為基礎配置
app.use(webpackDevMiddleware(compiler, {
  publicPath: config.output.publicPath
}));

// 將文件 serve 到 port 3000。
app.listen(3000, function () {
  console.log("Example app listening on port 3000!
");
});

也可以配合devServer

    const WebpackDevServer = require("webpack-dev-server")
    
    const compiler = webpack(webpack.conf)
    hotMiddleware = webpackHotMiddleware(compiler, {
      log: false,
      //path
      heartbeat: 2500
    })
    const server = new WebpackDevServer(
      compiler,
      {
        contentBase: path.join(__dirname, "../"),
        quiet: true,
        before (app, ctx) {
          app.use(hotMiddleware)
          ctx.middleware.waitUntilValid(() => {
            
          })
        }
      }
    )
    server.listen(3000)

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/54967.html

相關文章

  • 起來了解這些webpack常用插件

    摘要:前言對于的配置以及常用模塊大家應該都比較熟悉,本文將說一說的一些常用插件,以及用法。如果在一個前面加了它會被定義為調用。或者被模塊的導出的內容所賦值,以支持命名導出。用于生成的文檔的標題默認為將寫入的文件默認模板的相對或絕對路徑。 前言 對于webpack的配置以及常用模塊大家應該都比較熟悉,本文將說一說webpack的一些常用插件,以及用法。 目錄 1.內置插件 名稱 參數 說明...

    gggggggbong 評論0 收藏0
  • 帶你了解webpack

    摘要:根據依賴關系,按照配置文件把模塊函數分組打包成若干個。會隨著自身的的修改,而發生變化。只需要在命令行運行時帶上參數就搞定一些插件的廢除和替換廢棄了頂替者用屬性變化壓縮優化代碼分割,下面詳解還有一些新的插件,。 1. 前端工程化項目打包歷史 前端工程化之前的時代略過 1. 半自動執行腳本來壓縮合并文件 自從xmlhttprequest被挖掘出來,網頁能夠和服務端通訊,js能做的事越來越多...

    senntyou 評論0 收藏0
  • 帶你了解webpack

    摘要:根據依賴關系,按照配置文件把模塊函數分組打包成若干個。會隨著自身的的修改,而發生變化。只需要在命令行運行時帶上參數就搞定一些插件的廢除和替換廢棄了頂替者用屬性變化壓縮優化代碼分割,下面詳解還有一些新的插件,。 1. 前端工程化項目打包歷史 前端工程化之前的時代略過 1. 半自動執行腳本來壓縮合并文件 自從xmlhttprequest被挖掘出來,網頁能夠和服務端通訊,js能做的事越來越多...

    Tamic 評論0 收藏0
  • webpack原理

    摘要:原理查看所有文檔頁面前端開發文檔,獲取更多信息。初始化階段事件名解釋初始化參數從配置文件和語句中讀取與合并參數,得出最終的參數。以上處理的相關配置如下編寫編寫的職責由上面的例子可以看出一個的職責是單一的,只需要完成一種轉換。 webpack原理 查看所有文檔頁面:前端開發文檔,獲取更多信息。原文鏈接:webpack原理,原文廣告模態框遮擋,閱讀體驗不好,所以整理成本文,方便查找。 工作...

    trigkit4 評論0 收藏0

發表評論

0條評論

makeFoxPlay

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<