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

資訊專欄INFORMATION COLUMN

react+webpack項(xiàng)目常用的插件(plugins)

cyixlq / 3365人閱讀

一、HtmlWebpackPlugin使用:
npm install html-webpack-plugin --save-dev

解釋:這個(gè)插件是簡(jiǎn)化創(chuàng)建生成html(h5)文件用的,如果你引入的文件帶有hash值的話,這個(gè)尤為的有用,不需要手動(dòng)去更改引入的文件名!

默認(rèn)生成的是index.html,基本用法為:

var HtmlWebpackPlugin = require("html-webpack-plugin");
var webpackConfig = {
  entry: "index.js",
  output: {
    path: "dist",
    filename: "index_bundle.js"
  },
  plugins: [new HtmlWebpackPlugin()]
};

js通過script的標(biāo)簽引入到body中!
如果你使用了ExtractTextPlugin來提取css,將通過link在head中引入!

一般配置:

title: 用于生成的HTML文檔的標(biāo)題,也就是html,head中`ceshi`
filename: 生成的文件名,default index.html
template: 模版(填寫相對(duì)路徑,與配置文件的相對(duì)路徑,例如:"./index.html"
hash: 增加hash值,使每次生成的都是唯一的不重復(fù)的
二、ExtractTextWebpackPlugin 分離我們的樣式文件,例如css,sass,less
npm install --save-dev extract-text-webpack-plugin

基本用法:

const ExtractTextPlugin = require("extract-text-webpack-plugin");

module.exports = {
  module: {
    rules: [
      {
        test: /.css$/,
        use: ExtractTextPlugin.extract({
          fallback: "style-loader",
          use: "css-loader"
        })
      }
    ]
  },
  plugins: [
    new ExtractTextPlugin("styles.css"),
     //輸出在根目錄上,也可以這樣寫css/styles.css
  ]
}

其中plugins中的參數(shù)配置有:(string/object) id: 插件實(shí)例的唯一標(biāo)識(shí),默認(rèn)情況下是自動(dòng)生成的,不建議設(shè)置
filename: 生成文件的名稱,可以包含[name], [id] and [contenthash]
allChunks:(bollean) 從所有附加塊中提取(默認(rèn)情況下,它僅從初始?jí)K中提取)

rules里面的參數(shù)配置有:(loader | object) options.use :
{String}/{Array}/{Object} 使用的編譯loader options.fallback :
{String}/{Array}/{Object} 當(dāng)css沒有被提取的時(shí)候,可以當(dāng)作保守用 options.publicPath :
可以覆蓋output里的publickPath

如果想生成多個(gè)css文件的話,可以這樣寫:

const ExtractTextPlugin = require("extract-text-webpack-plugin");

const extractCSS = new ExtractTextPlugin("css/[name]-one.css");
const extractLESS = new ExtractTextPlugin("css/[name]-two.css");

module.exports = {
  module: {
    rules: [
      {
        test: /.css$/,
        use: extractCSS.extract([ "css-loader", "postcss-loader" ])
      },
      {
        test: /.less$/i,
        use: extractLESS.extract([ "css-loader", "less-loader" ])
      },
    ]
  },
  plugins: [
    extractCSS,  //兩個(gè)實(shí)例
    extractLESS
  ]
};
三、DefinePlugin 定義變量

允許我們創(chuàng)建可在編譯時(shí)配置的全局常量,這對(duì)與需要靈活配置的項(xiàng)目而言非常的重要,舉個(gè)例子:
開發(fā)中我們需要devtool來查看redux樹中stroe中的變量,但是生產(chǎn)環(huán)境中不需要,那么就可以這樣定義:

const nodeEnv = process.env.NODE_ENV || "development";
const isPro = nodeEnv === "production";
new webpack.DefinePlugin({
    "__dev__": JSON.stringify(isPro) 
})

那么在開發(fā)環(huán)境中__dev__為false,
打包的時(shí)候可以在CLI中輸入NODE_ENV=production 這樣__dev__就為true;

四、ProvidePlugin 提供識(shí)別碼

通俗點(diǎn)講就是使用一些字符代替復(fù)雜的字符,例如我想用 $ 代表 jquery, 那么就可以使用這個(gè)插件,或著我想用 "av" 代表 "./ateon/values" 這個(gè)路徑,也可以使用這個(gè)插件。

基本用法:

new webpack.ProvidePlugin({
  $: "jquery",
  jQuery: "jquery",
  "av" : "./ateon/values"
})

在模塊中使用,import lives from "av" === import lives from "./ateon/values"

五、clean-webpack-plugin 清除你的build目錄

基本用法:

const CleanWebpackPlugin = require("clean-webpack-plugin")

// webpack config
{
  plugins: [
    new CleanWebpackPlugin(paths [, {options}])
  ]
}
[, {options}]為可選參數(shù)
`path` An [array] of string
options 參數(shù)
{
root: __dirname,默認(rèn)根目錄,也就是你的package的路徑(絕對(duì)路徑)
verbose: true, 在控制臺(tái)console日志
dry: false, 默認(rèn)為false,刪除所有的文件, 為true時(shí),模擬刪除,并不刪除文件
watch: false, 默認(rèn)false, 為true時(shí)刪除所有的編譯文件
exclude: [ "files", "to", "ignore" ] 
}

一般這一項(xiàng)我們都使用默認(rèn)值,不去設(shè)置,只需要設(shè)置path就可以了!

總結(jié),常用的就是這些了,后續(xù)還會(huì)在陸續(xù)的加入。。。其他相關(guān)插件!

再次跟新一個(gè)插件,也是業(yè)務(wù)需求,將公用代碼塊獨(dú)立打包,(六)

六、CommonsChunkPlugin 公用模塊獨(dú)立打包

說到這個(gè),可以說很多用webpack項(xiàng)目的都會(huì)使用到這一插件,可以提升些許編譯的速度。直接上demo吧!首先假設(shè)是一個(gè)react-webpack項(xiàng)目,那必然每次新建js的時(shí)候都會(huì)

import React,{PropTypes} from "react";
import {ReactDOM} from "react-dom";

將react和reactdom獨(dú)立打包到一個(gè)文件,配置如下:

entry: {
      index: ‘main.js’,
      vendor : ["react", "react-dom"]  
},
output: {
    chunkFilename:"[name].[hash:8].js", //用hash解決緩存的問題,
}


plugins: [
new CommonsChunkPlugin({ //對(duì)指定的chunks進(jìn)行公共模塊的提取 多個(gè) html共用一個(gè)js文件(chunk),可用CommonsChunkPlugin
        names: ["vendor", "manifest"],
}),
]

這個(gè)names是一個(gè)數(shù)組,vendor對(duì)應(yīng)的是entry上面的鍵值,必須一致,打包后就會(huì)在cli(命令行)中看到多一個(gè)vendor.js文件,如果啟動(dòng)文件必須先引入這個(gè)js才行,否則會(huì)報(bào)錯(cuò)!

那么這個(gè)manifest是為了解決vendor再次編譯的問題,如果只是寫了names:vendor,你可以仔細(xì)檢查vendor后面的hash值的變化,在熱更新的時(shí)候,每次更改js文件,都會(huì)重新編譯,vendor也會(huì)重新編譯(看看hash就知道了),按理說應(yīng)該是不會(huì)更改了,因?yàn)槲覀兙褪怯眠@個(gè)插件去解決公用代碼庫(kù)不用每次都打包,提升編譯速度的!解決的方案就是加一個(gè)這個(gè),目前我也在找原因,找到了會(huì)及時(shí)過來更新的!

這個(gè)還有其他的參數(shù)配置,這里稍微解釋一下參數(shù)的配置

{
name: string,//or   names: Array 對(duì)應(yīng)entry上的鍵值
filename: string    生成文件的名字,如果沒有默認(rèn)為輸出文件名
minChunks: number|Infinity  模塊被引用的次數(shù)多少才會(huì)被獨(dú)立打包>=2
chunks: 表示需要在哪些chunk(也可以理解為webpack配置中entry的每一項(xiàng))里尋找公共代碼進(jìn)行打包。不設(shè)置此參數(shù)則默認(rèn)提取范圍為所有的chunk
}

一般配置選項(xiàng)就是上面這些,

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/82547.html

相關(guān)文章

  • TCMwebpack配置與常用插件

    摘要:中的配置熱加載插件安裝中的配置優(yōu)化插件為組件分配,通過這個(gè)插件可以分析和優(yōu)先考慮使用最多的模塊,并為它們分配最小的壓縮代碼分離和文件 0 前言 本文是針對(duì)TCM項(xiàng)目所做的WebPack配置文件總結(jié),主要概述了一些常用配置選項(xiàng)和插件使用,對(duì)以后的項(xiàng)目有指導(dǎo)意義。TCM的webpack配置文件包括webapck.config.base.js、webapck.config.dev.js、we...

    羅志環(huán) 評(píng)論0 收藏0
  • TCMwebpack配置與常用插件

    摘要:中的配置熱加載插件安裝中的配置優(yōu)化插件為組件分配,通過這個(gè)插件可以分析和優(yōu)先考慮使用最多的模塊,并為它們分配最小的壓縮代碼分離和文件 0 前言 本文是針對(duì)TCM項(xiàng)目所做的WebPack配置文件總結(jié),主要概述了一些常用配置選項(xiàng)和插件使用,對(duì)以后的項(xiàng)目有指導(dǎo)意義。TCM的webpack配置文件包括webapck.config.base.js、webapck.config.dev.js、we...

    張憲坤 評(píng)論0 收藏0
  • React項(xiàng)目實(shí)戰(zhàn):環(huán)境搭建

    摘要:官方文檔中文翻譯構(gòu)建用戶界面的庫(kù)。官方文檔建議學(xué)習(xí)時(shí)以官方文檔為準(zhǔn),中文翻譯或者第三方作者的教程可以幫助你理清思路會(huì)用到的重要知識(shí)點(diǎn)我也會(huì)進(jìn)行簡(jiǎn)明的解釋,如遇到錯(cuò)誤或者不理解的內(nèi)容,歡迎實(shí)時(shí)指出。 前言 前面提到前端大統(tǒng)一的概念,如果感興趣,歡迎說說自己的看法,點(diǎn)擊前往。Web前端框架層出不窮,不可能面面俱到,這里給個(gè)小建議: 如果對(duì)Weex App感興趣,應(yīng)該選擇vue框架; 如果...

    cnio 評(píng)論0 收藏0
  • React項(xiàng)目實(shí)戰(zhàn):環(huán)境搭建

    摘要:官方文檔中文翻譯構(gòu)建用戶界面的庫(kù)。官方文檔建議學(xué)習(xí)時(shí)以官方文檔為準(zhǔn),中文翻譯或者第三方作者的教程可以幫助你理清思路會(huì)用到的重要知識(shí)點(diǎn)我也會(huì)進(jìn)行簡(jiǎn)明的解釋,如遇到錯(cuò)誤或者不理解的內(nèi)容,歡迎實(shí)時(shí)指出。 前言 前面提到前端大統(tǒng)一的概念,如果感興趣,歡迎說說自己的看法,點(diǎn)擊前往。Web前端框架層出不窮,不可能面面俱到,這里給個(gè)小建議: 如果對(duì)Weex App感興趣,應(yīng)該選擇vue框架; 如果...

    GHOST_349178 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<