欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解Webpack DLL用法以及功能

 更新時(shí)間:2017年07月11日 16:47:50   作者:clinyong  
本篇文章主要介紹了詳解Webpack DLL用法以及功能,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

在使用webpack過(guò)程中,本人也發(fā)現(xiàn)發(fā)現(xiàn)構(gòu)建速度非常慢,Webpack性能優(yōu)化的方式有很多種,本文介紹了dll,dll是一種最簡(jiǎn)單粗暴并且極其有效的優(yōu)化方式。

前言

在用 Webpack 打包的時(shí)候,對(duì)于一些不經(jīng)常更新的第三方庫(kù),比如 react,lodash,我們希望能和自己的代碼分離開(kāi),Webpack 社區(qū)有兩種方案

  1. CommonsChunkPlugin
  2. DLLPlugin

對(duì)于 CommonsChunkPlugin,webpack 每次打包實(shí)際還是需要去處理這些第三方庫(kù),只是打包完之后,能把第三方庫(kù)和我們自己的代碼分開(kāi)。而DLLPlugin 則是能把第三方代碼完全分離開(kāi),即每次只打包項(xiàng)目自身的代碼。

用法

要使用 DLLPlugin,需要額外新建一個(gè)配置文件。所以對(duì)于用這種方式打包的項(xiàng)目,一般會(huì)有下面兩個(gè)配置文件

  1. webpack.config.js
  2. webpack.dll.config.js

先來(lái)看下 webpack.dll.config.js

const webpack = require('webpack')
const library = '[name]_lib'
const path = require('path')

module.exports = {
 entry: {
  vendors: ['react', 'lodash']
 },

 output: {
  filename: '[name].dll.js',
  path: 'dist/',
  library
 },

 plugins: [
  new webpack.DllPlugin({
   path: path.join(__dirname, 'dist/[name]-manifest.json'),
   // This must match the output.library option above
   name: library
  }),
 ],
}

再改下 webpack.config.js 文件

const webpack = require('webpack')

module.exports = {
 entry: {
  app: './src/index'
 },
 output: {
  filename: 'app.bundle.js',
  path: 'dist/',
 },
 plugins: [
  new webpack.DllReferencePlugin({
   context: __dirname,
   manifest: require('./dist/vendors-manifest.json')
  })
 ]
}

manifest: require('./dist/vendors-manifest.json') 這里的路徑要和 webpack.dll.config.js 里面的對(duì)應(yīng)。

然后運(yùn)行

$ webpack --config webpack.dll.config.js
$ webpack --config webpack.config.js

然后你的 html 文件像下面這樣引用

<script src="/dist/vendors.dll.js"></script>
<script src="/dist/app.bundle.js"></script>

DLL Link Plugin

上面的用法也存在一些不方便的地方,比如在 webpack.config.js 中要明確指出對(duì)應(yīng)的 manifest.json 文件。還有當(dāng) DLL 需要更新的時(shí)候,比如 react 升級(jí)了,或者加入新的第三方庫(kù),都需要手動(dòng)像下面這樣編譯一次。

$ webpack --config webpack.dll.config.js

因?yàn)樯厦孢@些問(wèn)題,所以基于官方的 DllReferencePlugin,我寫(xiě)了一個(gè)打包的插件,Dll Link Plugin。

使用這個(gè)插件,只需要對(duì) webpack.config.js 作下小小的改動(dòng)

const webpack = require('webpack')
const DllLinkPlugin = require('dll-link-webpack-plugin')

module.exports = {
 // ...
 plugins: [
  new DllLinkPlugin({
   config: require('webpack.dll.config.js')
  })
 ]
}

直接替換掉 DllReferencePlugin,然后傳入對(duì)應(yīng)的 DLL 配置文件就可以了。每次打包的時(shí)候,只需要運(yùn)行

$ webpack --config webpack.config.js

上面的命令便會(huì)自動(dòng)生成對(duì)應(yīng)的 vendors 文件,需要更新的時(shí)候,也會(huì)自動(dòng)更新。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • js將json格式的對(duì)象拼接成復(fù)雜的url參數(shù)方法

    js將json格式的對(duì)象拼接成復(fù)雜的url參數(shù)方法

    下面小編就為大家?guī)?lái)一篇js將json格式的對(duì)象拼接成復(fù)雜的url參數(shù)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-05-05
  • JS實(shí)現(xiàn)的仿淘寶交易倒計(jì)時(shí)效果

    JS實(shí)現(xiàn)的仿淘寶交易倒計(jì)時(shí)效果

    這篇文章主要介紹了JS實(shí)現(xiàn)的仿淘寶交易倒計(jì)時(shí)效果,涉及JavaScript針對(duì)時(shí)間與日期的動(dòng)態(tài)操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-11-11
  • 微信小程序云函數(shù)添加數(shù)據(jù)到數(shù)據(jù)庫(kù)的方法

    微信小程序云函數(shù)添加數(shù)據(jù)到數(shù)據(jù)庫(kù)的方法

    這篇文章主要介紹了微信小程序云函數(shù)添加數(shù)據(jù)到數(shù)據(jù)庫(kù)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • JavaScript 讀取圖片實(shí)例代碼

    JavaScript 讀取圖片實(shí)例代碼

    本章主要介紹通過(guò)JavaScript讀取圖片的例子,本例子不包含服務(wù)器端后臺(tái)代碼,只包含前臺(tái)頁(yè)面代碼,所以直接用Html文件就可以,代碼如下,因?yàn)榘敿?xì)的注意,所以不再詳細(xì)說(shuō)明了,如果有看不明白的,可以給我留言,我給大家具體答復(fù)。
    2009-11-11
  • 圖形編輯器中JS實(shí)現(xiàn)防誤操作之拖拽阻塞

    圖形編輯器中JS實(shí)現(xiàn)防誤操作之拖拽阻塞

    這篇文章主要為大家介紹了圖形編輯器中JS實(shí)現(xiàn)防誤操作之拖拽阻塞實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • 基于Vue的ajax公共方法(詳解)

    基于Vue的ajax公共方法(詳解)

    下面小編就為大家分享一篇基于Vue的ajax公共方法(詳解),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-01-01
  • 基于js里調(diào)用函數(shù)時(shí),函數(shù)名帶括號(hào)和不帶括號(hào)的區(qū)別

    基于js里調(diào)用函數(shù)時(shí),函數(shù)名帶括號(hào)和不帶括號(hào)的區(qū)別

    下面小編就為大家?guī)?lái)一篇基于js里調(diào)用函數(shù)時(shí),函數(shù)名帶括號(hào)和不帶括號(hào)的區(qū)別。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-07-07
  • 基于Node.js的JavaScript項(xiàng)目構(gòu)建工具gulp的使用教程

    基于Node.js的JavaScript項(xiàng)目構(gòu)建工具gulp的使用教程

    也許你使用過(guò)grunt,那么這里來(lái)安利gulp的話就更加不會(huì)陌生了,下面我們就來(lái)看一下基于Node.js的JavaScript項(xiàng)目構(gòu)建工具gulp的使用教程
    2016-05-05
  • JS給Textarea文本框添加行號(hào)的方法

    JS給Textarea文本框添加行號(hào)的方法

    這篇文章主要介紹了JS給Textarea文本框添加行號(hào)的方法,涉及javascript針對(duì)頁(yè)面元素結(jié)點(diǎn)的讀取與判定技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-08-08
  • js獲取時(shí)間函數(shù)及擴(kuò)展函數(shù)的方法

    js獲取時(shí)間函數(shù)及擴(kuò)展函數(shù)的方法

    下面小編就為大家?guī)?lái)一篇js獲取時(shí)間函數(shù)及擴(kuò)展函數(shù)的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-10-10

最新評(píng)論