摘要:前言對(duì)于的配置以及常用模塊大家應(yīng)該都比較熟悉,本文將說(shuō)一說(shuō)的一些常用插件,以及用法。如果在一個(gè)前面加了它會(huì)被定義為調(diào)用?;蛘弑荒K的導(dǎo)出的內(nèi)容所賦值,以支持命名導(dǎo)出。用于生成的文檔的標(biāo)題默認(rèn)為將寫(xiě)入的文件默認(rèn)模板的相對(duì)或絕對(duì)路徑。
前言
對(duì)于webpack的配置以及常用模塊大家應(yīng)該都比較熟悉,本文將說(shuō)一說(shuō)webpack的一些常用插件,以及用法。目錄
1.內(nèi)置插件
名稱(chēng) | 參數(shù) | 說(shuō)明 | 用法 |
---|---|---|---|
DefinePlugin | Object | 編譯時(shí)配置的全局常量,開(kāi)發(fā)模式和發(fā)布模式的構(gòu)建允許不同的行為非常有用 | DefinePlugin |
HotModuleReplacementPlugin | - | 熱更新模塊 | |
NoEmitOnErrorsPlugin | - | 打包出錯(cuò)時(shí)不把錯(cuò)誤輸出到文件 | |
NamedModulesPlugin | - | 顯示模塊相對(duì)路徑 | |
ProvidePlugin | - | 自動(dòng)加載模塊 | ProvidePlugin |
PrefetchPlugin | context: 目錄的絕對(duì)路徑,request: 模塊路徑 | 預(yù)加載模塊請(qǐng)求 |
2.其他插件
名稱(chēng) | 參數(shù) | 說(shuō)明 | 用法 |
---|---|---|---|
CopyWebpackPlugin | Array | 拷貝文件夾或文件到指定目錄 | CopyWebpackPlugin |
HtmlWebpackPlugin | - | 在編譯目錄下生成html,并將打包后的js文件插入script標(biāo)簽中 | HtmlWebpackPlugin |
ExtractTextPlugin | - | 把打包文件中的文本提取到一個(gè)文件 | ExtractTextPlugin |
OptimizeCSSPlugin | - | 優(yōu)化壓縮css文件 | OptimizeCSSPlugin |
UglifyJsPlugin | - | 壓縮JavaScript文件 | UglifyJsPlugin |
WebpackDevServer | 提供了一個(gè)簡(jiǎn)單的 web server,并且具有 live reloading(實(shí)時(shí)重新加載) 功能 | WebpackDevServer | |
WebpackHotMiddleware | 把 webpack 處理過(guò)的文件發(fā)送到一個(gè) server | webpackHotMiddleware |
如果這個(gè)值是一個(gè)字符串,它會(huì)被當(dāng)作一個(gè)代碼片段來(lái)使用。
如果這個(gè)值不是字符串,它會(huì)被轉(zhuǎn)化為字符串(包括函數(shù))。
如果這個(gè)值是一個(gè)對(duì)象,它所有的 key 會(huì)被同樣的方式定義。
如果在一個(gè) key 前面加了 typeof,它會(huì)被定義為 typeof 調(diào)用。
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
自動(dòng)加載模塊,而不必到處 import 或 require 。
任何時(shí)候,當(dāng) identifier 被當(dāng)作未賦值的變量時(shí),module 就會(huì)自動(dòng)被加載,并且 identifier 會(huì)被這個(gè) module 導(dǎo)出的內(nèi)容所賦值。(或者被模塊的 property 導(dǎo)出的內(nèi)容所賦值,以支持命名導(dǎo)出(named export))。
new webpack.ProvidePlugin({ identifier: "module1", // ... }); new webpack.ProvidePlugin({ identifier: ["module1", "property1"], // ... });
對(duì)于 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, //僅復(fù)制文件。用于文件夾和文件同名時(shí) }, ]), ], };https://webpack.docschina.org/plugins/copy-webpack-plugin/#ignore
查看更多
HtmlWebpackPlugin該插件將為你生成一個(gè)HTML文件,其中包括使用script標(biāo)簽中引入webpack打包js。
如果你有多個(gè)webpack入口點(diǎn),他們都會(huì)在生成的HTML文件中的script標(biāo)簽內(nèi)。
如果你有任何CSS assets在webpack的輸出中(例如,利用MiniCssExtractPlugin提取 CSS),那么這些將被包含在HTML head中的標(biāo)簽內(nèi)。
new HtmlWebpackPlugin({ title: "Webpack App" //用于生成的HTML文檔的標(biāo)題 默認(rèn)為Webpack App filename: "index.html", //將HTML寫(xiě)入的文件 默認(rèn)index.html template: "index.html", //webpack模板的相對(duì)或絕對(duì)路徑。默認(rèn)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, //將它錯(cuò)誤信息寫(xiě)入頁(yè)面 }),ExtractTextPlugin
把打包文件中的文本提取到一個(gè)文件通常用于提取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
提供了一個(gè)簡(jiǎn)單的 web server,并且具有 live reloading(實(shí)時(shí)重新加載) 功能
module.exports = { devServer: { contentBase: "./dist" } };
查看詳細(xì)配置
WebpackHotMiddlewareconst 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 配置文件作為基礎(chǔ)配置 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)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/114575.html
摘要:前言對(duì)于的配置以及常用模塊大家應(yīng)該都比較熟悉,本文將說(shuō)一說(shuō)的一些常用插件,以及用法。如果在一個(gè)前面加了它會(huì)被定義為調(diào)用。或者被模塊的導(dǎo)出的內(nèi)容所賦值,以支持命名導(dǎo)出。用于生成的文檔的標(biāo)題默認(rèn)為將寫(xiě)入的文件默認(rèn)模板的相對(duì)或絕對(duì)路徑。 前言 對(duì)于webpack的配置以及常用模塊大家應(yīng)該都比較熟悉,本文將說(shuō)一說(shuō)webpack的一些常用插件,以及用法。 目錄 1.內(nèi)置插件 名稱(chēng) 參數(shù) 說(shuō)明...
摘要:根據(jù)依賴(lài)關(guān)系,按照配置文件把模塊函數(shù)分組打包成若干個(gè)。會(huì)隨著自身的的修改,而發(fā)生變化。只需要在命令行運(yùn)行時(shí)帶上參數(shù)就搞定一些插件的廢除和替換廢棄了頂替者用屬性變化壓縮優(yōu)化代碼分割,下面詳解還有一些新的插件,。 1. 前端工程化項(xiàng)目打包歷史 前端工程化之前的時(shí)代略過(guò) 1. 半自動(dòng)執(zhí)行腳本來(lái)壓縮合并文件 自從xmlhttprequest被挖掘出來(lái),網(wǎng)頁(yè)能夠和服務(wù)端通訊,js能做的事越來(lái)越多...
摘要:根據(jù)依賴(lài)關(guān)系,按照配置文件把模塊函數(shù)分組打包成若干個(gè)。會(huì)隨著自身的的修改,而發(fā)生變化。只需要在命令行運(yùn)行時(shí)帶上參數(shù)就搞定一些插件的廢除和替換廢棄了頂替者用屬性變化壓縮優(yōu)化代碼分割,下面詳解還有一些新的插件,。 1. 前端工程化項(xiàng)目打包歷史 前端工程化之前的時(shí)代略過(guò) 1. 半自動(dòng)執(zhí)行腳本來(lái)壓縮合并文件 自從xmlhttprequest被挖掘出來(lái),網(wǎng)頁(yè)能夠和服務(wù)端通訊,js能做的事越來(lái)越多...
摘要:原理查看所有文檔頁(yè)面前端開(kāi)發(fā)文檔,獲取更多信息。初始化階段事件名解釋初始化參數(shù)從配置文件和語(yǔ)句中讀取與合并參數(shù),得出最終的參數(shù)。以上處理的相關(guān)配置如下編寫(xiě)編寫(xiě)的職責(zé)由上面的例子可以看出一個(gè)的職責(zé)是單一的,只需要完成一種轉(zhuǎn)換。 webpack原理 查看所有文檔頁(yè)面:前端開(kāi)發(fā)文檔,獲取更多信息。原文鏈接:webpack原理,原文廣告模態(tài)框遮擋,閱讀體驗(yàn)不好,所以整理成本文,方便查找。 工作...
閱讀 2238·2021-09-23 11:52
閱讀 1905·2021-09-02 15:41
閱讀 3026·2019-08-30 10:47
閱讀 1989·2019-08-29 17:14
閱讀 2344·2019-08-29 16:16
閱讀 3195·2019-08-28 18:29
閱讀 3426·2019-08-26 13:30
閱讀 2615·2019-08-26 10:49