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

資訊專欄INFORMATION COLUMN

用webpack4帶你實(shí)現(xiàn)一個(gè)vue的打包的項(xiàng)目

verano / 909人閱讀

摘要:一個(gè)用打包的的項(xiàng)目,參照的配置,一步一步帶你實(shí)現(xiàn)一個(gè)的打包的項(xiàng)目,每一個(gè)對應(yīng)一個(gè)步驟。如下注釋模板生產(chǎn)環(huán)境的開啟靜態(tài)文件的壓縮如果是的話需要打包完成顯示包大小的狀態(tài)分析運(yùn)行或者就可以實(shí)現(xiàn)打包項(xiàng)目啦。

一個(gè)用webpack4打包的vue 的項(xiàng)目,參照vue-cliwebpack配置,

一步一步帶你實(shí)現(xiàn)一個(gè)vue的打包的項(xiàng)目,每一個(gè)commit對應(yīng)一個(gè)步驟。

github 地址 clone project

git clone git@github.com:naihe138/nvue.git

install

npm install or yarn

一、初始化項(xiàng)目

初始化項(xiàng)目,用vue-loader來打包.vue文件,html-webpack-plugin插件來導(dǎo)出html文件。
第一步我們很簡單,就利用vue-loader babel-loader 是把.vue文件打包出來,總共才40多行代碼,看build/webpack.base.conf.js文件注釋就看的懂。+++表示有省略的代碼

module.exports = {
  +++
  // 模塊,loader
  module: {
    rules: [
      {
        test: /.vue$/,
        loader: "vue-loader",
        exclude: /node_modules/,
        include: resolve("src")
      },
      {
        test: /.js$/,
        loader: "babel-loader",
        exclude: /node_modules/,
        include: resolve("src")
      }
    ]
  }
  +++
}

運(yùn)行 webpack --config build/webpack.base.conf.js

二、打包c(diǎn)ss和圖片等資源

這里打包csssass 為例,用到了mini-css-extract-plugin插件提取css,用url-loader來處理字體、圖片、音頻等資源。非常簡單。如下代碼,+++表示有省略的代碼

+++
module.exports = {
  +++
  // 模塊,loader
  module: {
    rules: [
      +++
      {
        test: /.s?css$/,
        use: [
          MiniCssExtractPlugin.loader,
          "css-loader",
          "sass-loader"
        ]
      },
      {
        test: /.(png|jpe?g|gif|svg)(?.*)?$/,
        loader: "url-loader",
        options: {
          limit: 10000,
          name: "static/img/[name].[hash:7].[ext]"
        }
      }
      +++
    ]
  },
  // 插件
  plugins: [
    +++
    new MiniCssExtractPlugin({
      filename: "static/css/[name].[hash].css",
      chunkFilename: "static/css/[name].[hash].css"
    })
  ]
}

運(yùn)行 webpack --config build/webpack.base.conf.js

三、配置熱加載、代理等開發(fā)環(huán)境

通過build/config.js來設(shè)置開發(fā)配置。如下注釋

const path = require("path")

module.exports = {
  dev: {
    assetsSubDirectory: "static", // 靜態(tài)文件目錄
    assetsPublicPath: "/", // 相對文件路徑
    proxyTable: {},
    host: "localhost",
    port: "8000",
    autoOpenBrowser: false, // 是否自動(dòng)打開瀏覽器
    errorOverlay: true, // 瀏覽器錯(cuò)誤提示遮罩層
    notifyOnErrors: true, // 編譯錯(cuò)誤的時(shí)候通知提示,需要friendly-errors-webpack-plugin 配合
    poll: false,
    useEslint: true, // 便宜使用eslint-loader模塊
    showEslintErrorsInOverlay: false, // eslint瀏覽器錯(cuò)誤提示遮罩層
    devtool: "cheap-module-eval-source-map", // Source Maps
    cssSourceMap: true, // css Source Maps
    cacheBusting: false, // vue debugg 提示
  }
}

webpack.dev.conf.js中,通過webpack-dev-server 插件來開啟熱重載服務(wù),同時(shí)配置自動(dòng)補(bǔ)全css兼容代碼的插件,postcss-loader

運(yùn)行npm run dev 或者 yarn dev 就可以啟動(dòng)服務(wù)了

四、配置打包環(huán)境

通過build/config.js來設(shè)置開發(fā)配置。如下注釋

const path = require("path")

module.exports = {
  +++
  build: {
    // html模板
    index: path.resolve(__dirname, "../dist/index.html"),
    // Paths
    assetsRoot: path.resolve(__dirname, "../dist"),
    assetsSubDirectory: "static",
    assetsPublicPath: "/",
    // 生產(chǎn)環(huán)境的souce map
    productionSourceMap: false,
    devtool: "#source-map",
    // 開啟靜態(tài)文件的Gzip壓縮
    // 如果是true 的話  需要 npm install --save-dev compression-webpack-plugin
    productionGzip: false,
    productionGzipExtensions: ["js", "css"],

    // 打包完成顯示包大小的狀態(tài)分析
    // `npm run build --report`
    bundleAnalyzerReport: process.env.npm_config_report
  }
}

運(yùn)行npm run build 或者 yarn build 就可以實(shí)現(xiàn)打包vue項(xiàng)目啦。

五、檢查版本,優(yōu)化打包輸出和Eslint設(shè)置

check-version.js中用 shelljs 模塊檢查時(shí)候有npm命令, semver模塊語義化版本號,然后在build.js合并webpack.prod.conf.js的的配置,然后組在格式化輸出。

// 檢查時(shí)候有安裝npm命令
if (shell.which("npm")) {
  versionRequirements.push({
    name: "npm",
    currentVersion: exec("npm --version"),
    versionRequirement: packageConfig.engines.npm
  })
}

// 格式化輸出
process.stdout.write(stats.toString({
  colors: true,
  modules: false,
  children: false,
  chunks: false,
  chunkModules: false
}) + "

")

通過eslint-loader 來配置eslint的檢查,建立.eslintrc.js去設(shè)置規(guī)則

{
  test: /.(js|vue)$/,
  loader: "eslint-loader",
  enforce: "pre",
  include: [resolve("src")],
  exclude: /node_modules/,
  options: {
    formatter: require("eslint-friendly-formatter"),
    emitWarning: !config.dev.showEslintErrorsInOverlay
  }
},
六、打包優(yōu)化

1、添加DllPluginDllReferencePlugin來打包優(yōu)化不變的庫,
2、通過cache-loader來做loader的緩存,
3、通過UglifyJsPluginparallel來開啟多線程打包

先運(yùn)行npm run dll 然后 npm run build

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

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

相關(guān)文章

  • 帶你了解webpack

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

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

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

    Tamic 評論0 收藏0
  • 關(guān)于Vue2一些值得推薦文章 -- 五、六月份

    摘要:五六月份推薦集合查看最新的請點(diǎn)擊集前端最近很火的框架資源定時(shí)更新,歡迎一下。蘇幕遮燎沈香宋周邦彥燎沈香,消溽暑。鳥雀呼晴,侵曉窺檐語。葉上初陽乾宿雨,水面清圓,一一風(fēng)荷舉。家住吳門,久作長安旅。五月漁郎相憶否。小楫輕舟,夢入芙蓉浦。 五、六月份推薦集合 查看github最新的Vue weekly;請::點(diǎn)擊::集web前端最近很火的vue2框架資源;定時(shí)更新,歡迎 Star 一下。 蘇...

    sutaking 評論0 收藏0

發(fā)表評論

0條評論

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