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

資訊專欄INFORMATION COLUMN

vue-cli中配置webpack系列文章七 ------ webpack.prod.conf.js

ShowerSun / 1598人閱讀

webpack.prod.conf.js

</>復(fù)制代碼

  1. var path = require("path")
  2. var utils = require("./utils")
  3. var webpack = require("webpack")
  4. var config = require("../config")
  5. var merge = require("webpack-merge")
  6. var baseWebpackConfig = require("./webpack.base.conf")
  7. var CopyWebpackPlugin = require("copy-webpack-plugin")
  8. var HtmlWebpackPlugin = require("html-webpack-plugin")
  9. var ExtractTextPlugin = require("extract-text-webpack-plugin")
  10. var OptimizeCSSPlugin = require("optimize-css-assets-webpack-plugin")
  11. // 獲取當(dāng)前環(huán)境
  12. var env = config.build.env
  13. var webpackConfig = merge(baseWebpackConfig, {
  14. module: {
  15. // 將.vue外部的css或css預(yù)處理器文件進(jìn)行處理
  16. rules: utils.styleLoaders({
  17. sourceMap: config.build.productionSourceMap,
  18. extract: true
  19. })
  20. },
  21. // 是否開啟調(diào)試
  22. devtool: config.build.productionSourceMap ? "#source-map" : false,
  23. output: {
  24. path: config.build.assetsRoot,
  25. filename: utils.assetsPath("js/[name].[chunkhash].js"),
  26. // 定義在非入口文件引用的文件的名稱
  27. chunkFilename: utils.assetsPath("js/[id].[chunkhash].js")
  28. },
  29. plugins: [
  30. // 定義一個在編譯時間內(nèi)可以使用的全局變量,用來關(guān)閉vue的所有警告功能
  31. new webpack.DefinePlugin({
  32. "process.env": env
  33. }),
  34. // 最小化所有JavaScript輸出塊,消除無作用的代碼
  35. new webpack.optimize.UglifyJsPlugin({
  36. compress: {
  37. warnings: false
  38. },
  39. sourceMap: false
  40. }),
  41. // ExtractTextPlugin會將所有的「入口 chunk(entry chunks)」中的 require("style.css") 移動到獨立分離的css文件。因此,樣式不再內(nèi)聯(lián)到j(luò)avascript里面,但會放到一個多帶帶的css包文件 (styles.css)當(dāng)中。 如果樣式文件較大,這會更快,因為樣式文件會跟javascript包并行加載
  42. new ExtractTextPlugin({
  43. filename: utils.assetsPath("css/[name].[contenthash].css")
  44. }),
  45. // 壓縮提取出來的CSS,并且進(jìn)行css的復(fù)用以解決extract-text-webpack-plugin將css處理后會出現(xiàn)的css重復(fù)的情況
  46. new OptimizeCSSPlugin({
  47. cssProcessorOptions: {
  48. safe: true
  49. }
  50. }),
  51. // 構(gòu)建要編譯輸出的index.html,并在文件中嵌入資源文件
  52. new HtmlWebpackPlugin({
  53. // 輸出的HTML文件名
  54. filename: config.build.index,
  55. // 模板文件路徑
  56. template: "index.html",
  57. // 設(shè)置為true或body可以將js代碼放到元素最后
  58. // 設(shè)置為head將js代碼加到里面
  59. // 設(shè)置為false所有靜態(tài)資源css和JavaScript都不會注入到模板文件中
  60. inject: true,
  61. minify: {
  62. // 刪除注釋
  63. removeComments: true,
  64. // 合并空白
  65. collapseWhitespace: true,
  66. // 刪除屬性的引號
  67. removeAttributeQuotes: true
  68. },
  69. // 通過CommonsChunkPlugin控制chunks在html文件中添加的順序
  70. // 設(shè)置為dependency即按照它們之間的依賴關(guān)系添加
  71. chunksSortMode: "dependency"
  72. }),
  73. // webpack將公共模塊打包的vendor.js里面使用CommonsChunkPlugin將vendor.js分離到多帶帶的文件
  74. new webpack.optimize.CommonsChunkPlugin({
  75. // 公共模塊名字
  76. name: "vendor",
  77. minChunks: function(module, count) {
  78. return (
  79. module.resource &&
  80. /.js$/.test(module.resource) &&
  81. module.resource.indexOf(
  82. path.join(__dirname, "../node_modules")
  83. ) === 0
  84. )
  85. }
  86. }),
  87. // 使用CommonsChunkPlugin可以保證如果我們的第三方插件沒有變動,在打包的時候可以不被重新的打包
  88. // 待到上線后就不會重新的加載以達(dá)到緩存的目的
  89. // 我們會獲得webpack執(zhí)行時間和輸出一份json文件保存chunk的id和最終引用它們的文件印射關(guān)系
  90. new webpack.optimize.CommonsChunkPlugin({
  91. name: "manifest",
  92. chunks: ["vendor"]
  93. }),
  94. // 復(fù)制static文件夾內(nèi)的靜態(tài)資源到打包好的文件中
  95. // 具體的路徑是之前我們設(shè)置的"config.build.assetsSubDirectory"
  96. new CopyWebpackPlugin([{
  97. from: path.resolve(__dirname, "../static"),
  98. to: config.build.assetsSubDirectory,
  99. ignore: [".*"]
  100. }])
  101. ]
  102. })
  103. // 如果開啟了Gzip壓縮,使用以下配置
  104. if (config.build.productionGzip) {
  105. var CompressionWebpackPlugin = require("compression-webpack-plugin")
  106. webpackConfig.plugins.push(
  107. new CompressionWebpackPlugin({
  108. asset: "[path].gz[query]",
  109. algorithm: "gzip",
  110. test: new RegExp(
  111. ".(" +
  112. config.build.productionGzipExtensions.join("|") +
  113. ")$"
  114. ),
  115. threshold: 10240,
  116. minRatio: 0.8
  117. })
  118. )
  119. }
  120. // 如果開啟了編譯報告,使用以下配置
  121. if (config.build.bundleAnalyzerReport) {
  122. var BundleAnalyzerPlugin = require("webpack-bundle-analyzer").BundleAnalyzerPlugin
  123. webpackConfig.plugins.push(new BundleAnalyzerPlugin())
  124. }
  125. module.exports = webpackConfig

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

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

相關(guān)文章

  • vue學(xué)習(xí)系列(二)vue-cli

    摘要:一介紹是官方提供的腳手架,用來快速建立項目。標(biāo)識項目名稱,這個你可以根據(jù)自己的項目來起名字。初始化完成之后,進(jìn)入安裝目錄,必須先安裝項目依賴,否則無法運行。源文件需要注意的是是入口文件,下的是路由文件,文件是組件文件。 一.介紹 vue-cli是官方提供的腳手架,用來快速建立項目。 二.安裝 npm install vue-cli -g//全局安裝 三.初始化項目 vue init ...

    baishancloud 評論0 收藏0
  • vue-cli配置webpack系列文章八 ------ 工程常用配置

    摘要:根據(jù)模板插入等生成最終生成的存放路徑,相對于的路徑模板路徑插入的位置,路徑設(shè)置屬性,屬性值是所在的路徑。配置后,在使用時將不再需要和進(jìn)行引入,直接使用即可。 一 webpack.base.conf.js 1. entry 為入口文件 1.1 在此可以綁定 babel 墊片 處理ie兼容 1.2 我們大部分為單頁面應(yīng)用(SPA),配置多頁面也可以在此配置 2. resol...

    netScorpion 評論0 收藏0
  • vue-cli解析

    摘要:在中,設(shè)置了一些配置,代碼如下通過它的注釋,我們可以理解它在中配置了靜態(tài)路徑本地服務(wù)器配置項等參數(shù)。下面還有一個的對象,它是在本地服務(wù)器啟動時,打包的一些配置,代碼如下其中包括模版文件的修改,打包完目錄之后的一些路徑設(shè)置,壓縮等。 前言 這段時間,算是空出手來寫幾篇文章了。由于很久都沒有時間整理現(xiàn)在所用的東西了,所以,接下來會慢慢整理出一些文檔來記錄前段時間的工作和生活。 這篇文章的主...

    KunMinX 評論0 收藏0
  • Vue-cli 命令行工具分析

    摘要:文章來源命令行工具分析命令行工具分析提供一個官方命令行工具,可用于快速搭建大型單頁應(yīng)用。其他模式的配置文件以此為基礎(chǔ)通過合并。 文章來源:Vue-cli 命令行工具分析 Vue-cli 命令行工具分析 Vue.js 提供一個官方命令行工具,可用于快速搭建大型單頁應(yīng)用。vue-webpack-boilerplate,官方定義為: full-featured Webpack setup ...

    LoftySoul 評論0 收藏0
  • vue-cli配置預(yù)編譯

    摘要:轉(zhuǎn)載文章公司的平臺功能越堆越多,打包也越來越費勁,一次十幾分鐘,運維很不爽,搗鼓了一下預(yù)編譯,試了一下大概縮短了七八分鐘,目前感覺還行,現(xiàn)在把它記下來,給需要的童鞋當(dāng)做參考,也給自己記錄一下。 (轉(zhuǎn)載文章)公司的平臺功能越堆越多,打包也越來越費勁,一次十幾分鐘,運維很不爽,so搗鼓了一下預(yù)編譯,試了一下大概縮短了七八分鐘,目前感覺還行,現(xiàn)在把它記下來,給需要的童鞋當(dāng)做參考,也給自己記錄...

    KnewOne 評論0 收藏0

發(fā)表評論

0條評論

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