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

資訊專欄INFORMATION COLUMN

roadhog 生產(chǎn)環(huán)境支持靜態(tài)文件名加 hash 和 CDN 配置

番茄西紅柿 / 832人閱讀

摘要:問題來源于思路使用來給文件加使用插件來給文件加使用插件來自動根據(jù)加的來引入對應(yīng)的和并生成文件安裝無需安裝因為已經(jīng)帶了版,如果自己安裝了版反而可能出問題。

問題來源于:https://github.com/sorrycc/ro...

Workaround:

思路

使用 webpack output 來給 js 文件加 hash

使用插件 extract-text-webpack-plugin 來給 css 文件加 hash

使用插件 html-webpack-plugin 來自動根據(jù)
webpack 加的 hash 來引入對應(yīng)的 css 和 js 并生成 html 文件

安裝

npm i -D ejs-loader html-webpack-plugin webpack-md5-hash

無需安裝 extract-text-webpack-plugin 因為 roadhog 已經(jīng)帶了 1.0.1 版,如果自己安裝了 2.x 版反而可能出問題。需要額外安裝 ejs-loader 因為 webpack 配置里會用到

webpack.config.js

const ExtractTextPlugin = require(extract-text-webpack-plugin)
const HtmlWebpackPlugin = require(html-webpack-plugin)
const WebpackMd5Hash = require(webpack-md5-hash)

module.exports = function (config, env) {
  config.module.loaders[0].exclude.push(/.ejs$/)    // 注 1
  if (env === production) {
    config.output.filename = [name].[chunkhash].js
    config.output.chunkFilename = [chunkhash].async.js
    config.plugins[3] = new ExtractTextPlugin([contenthash:20].css)    // 注 2
    config.plugins.push(
      new HtmlWebpackPlugin({
        template: ejs!src/index.ejs,    // 注 3
        inject: false,
        minify: { collapseWhitespace: true },
        production: true,
      }),
      new WebpackMd5Hash()
    )
  } else {
    config.plugins.push(
      new HtmlWebpackPlugin({
        template: ejs!src/index.ejs,
        inject: true,
      }),
    )
  }
  return config
}

[1] roadhog 默認(rèn)配置把非 特定格式 的文件都用 url-loader 去加載,但是 html-webpack-plugin 需要的 ejs 文件會變成 base64 編碼,所以要把 ejs 格式加入 loader 白名單,參考

[2] 覆蓋 roadhog 的 配置

[3] roadhog 對 html 默認(rèn)用的 file-loader,這里的 html-webpack-plugin 需要讀取其內(nèi)容作為模板,所以換成 ejs,也就不再需要 index.html

.roadhogrc

{
  "env": {
    "production": {
      "define": {
        "__CDN__": "https://cdn.example.com"
      }
    }
  }
}

.eslintrc

{
  "globals" : {
    "__CDN__": false
  }
}

index.ejs




  
  Example
  
  
  <% if (htmlWebpackPlugin.options.production) { %>
    <%= htmlWebpackPlugin.files.css.map((item) => {
      return ``
    }) %>
  <% } %>



  
<% if (htmlWebpackPlugin.options.production) { %> <%= htmlWebpackPlugin.files.js.map((item) => { return `` }) %> <% } %>

index.js 里去掉 `import ./index.html (如果有的話)

這樣就同時兼顧了開發(fā)環(huán)境和部署環(huán)境使用同一套 html 入口,并且開發(fā)環(huán)境使用本地文件,部署環(huán)境使用按照文件內(nèi)容 MD5 命名了的 CDN 文件(方便緩存控制)

參考

http://webpack.github.io/docs...

http://www.cnblogs.com/wonyun...

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

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

相關(guān)文章

  • roadhog 生產(chǎn)環(huán)境支持靜態(tài)件名 hash CDN 配置

    摘要:問題來源于思路使用來給文件加使用插件來給文件加使用插件來自動根據(jù)加的來引入對應(yīng)的和并生成文件安裝無需安裝因為已經(jīng)帶了版,如果自己安裝了版反而可能出問題。 問題來源于:https://github.com/sorrycc/ro... Workaround: 思路 使用 webpack output 來給 js 文件加 hash 使用插件 extract-text-webpack-plu...

    jsummer 評論0 收藏0
  • roadhog 生產(chǎn)環(huán)境支持靜態(tài)件名 hash CDN 配置

    摘要:問題來源于思路使用來給文件加使用插件來給文件加使用插件來自動根據(jù)加的來引入對應(yīng)的和并生成文件安裝無需安裝因為已經(jīng)帶了版,如果自己安裝了版反而可能出問題。 問題來源于:https://github.com/sorrycc/ro... Workaround: 思路 使用 webpack output 來給 js 文件加 hash 使用插件 extract-text-webpack-plu...

    izhuhaodev 評論0 收藏0
  • 如何使用webpack架構(gòu)項目——新手教程

    摘要:博主最近在學(xué)習(xí),順便搭建了一個基于的前端項目架構(gòu)在此寫文記錄一下,同時教會新入坑的小伙伴們?nèi)绾卧陧椖恐型媾~玩轉(zhuǎn)。所以開發(fā)環(huán)境中會有一個目錄用于我們開發(fā)還有一個用來存儲處理后的的模板文件。 博主最近在學(xué)習(xí)react redux,順便搭建了一個基于webpack的前端項目架構(gòu),在此寫文記錄一下,同時教會新入webpack坑的小伙伴們?nèi)绾卧陧椖恐型媾~!玩轉(zhuǎn)webpack。github...

    sutaking 評論0 收藏0
  • 從零到一,新建webpack工程

    摘要:指定啟用例如上述代碼,就使用和處理了除了以外的。設(shè)置當(dāng)前的為,同樣這個配置也可以寫在中。設(shè)置目錄刪除注釋去除空格去除屬性引號復(fù)制靜態(tài)目錄將所以可能被請求的靜態(tài)文件,分別放在目錄下。結(jié)語本次從零到一,新建了一個腳手架。 react-sample-javascript 為了實現(xiàn)一個可定制化高的react工程,我們往往會自己搭建一個react工程。所以本文會從零開始搭建一個react腳手架工...

    Code4App 評論0 收藏0
  • React+dva+webpack+antd-mobile 實戰(zhàn)分享(一)

    摘要:再看本篇文章之前,本人還是建議想入坑的童鞋可以選有來創(chuàng)建的項目,因為現(xiàn)在和還不成熟,坑相對要多一些,當(dāng)然如果你已經(jīng)做好跳坑的準(zhǔn)備,那么請繼續(xù)往下走本文適合對有一定了解的人。 再看本篇文章之前,本人還是建議想入坑react的童鞋可以選有create-react-app來創(chuàng)建react的項目,因為現(xiàn)在dva和roadhog還不成熟,坑相對要多一些,當(dāng)然如果你已經(jīng)做好跳坑的準(zhǔn)備,那么請繼續(xù)往...

    ziwenxie 評論0 收藏0

發(fā)表評論

0條評論

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