最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解在vue-cli3.0中自定css、js和圖片的打包路徑

 更新時(shí)間:2019年08月26日 09:33:32   作者:yangzhao  
這篇文章主要介紹了詳解在vue-cli3.0中自定css、js和圖片的打包路徑,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

前言

我們有時(shí)候因?yàn)橐恍┨厥庑枨?,可能需要將js/css/img等資源文件都打包到根路徑下,但vue-cli3.0的路徑配置中僅有 assetsDir配置項(xiàng)能夠配置所有的靜態(tài)文件所在的文件夾,并不能針對(duì)css/js/img等資源文件分別來(lái)做設(shè)置,那么請(qǐng)看我如何嘗試的吧!

分析

眾所周知,vue-cli3.0使用了webpack進(jìn)行打包處理,那么我們是否可以拿到目前打包默認(rèn)的一些webpack配置,并在這些配置中找到一些蛛絲馬跡,從而更改配置來(lái)實(shí)現(xiàn)對(duì)打包路徑的更改呢?

好在vue-cli3.0提供了這樣的功能!

我假設(shè)您已經(jīng)安裝了vue-cli3.0,那么打開(kāi)命令行,運(yùn)行一下命令:

vue ui

這個(gè)命令將會(huì)啟動(dòng)一個(gè)頁(yè)面,用來(lái)簡(jiǎn)化開(kāi)發(fā)過(guò)程中的一系列操作。

我們先導(dǎo)入當(dāng)前項(xiàng)目(自己摸索下,此處不展開(kāi)詳說(shuō))。

我們進(jìn)入<任務(wù)>頁(yè)面,點(diǎn)擊inspect選項(xiàng)卡,并點(diǎn)擊運(yùn)行按鈕,將會(huì)得到該項(xiàng)目下所有的webpack配置項(xiàng)。

將這個(gè)配置復(fù)制到我們的編輯器中,然后我們查找路徑'js/', 'css/', 'img/',將會(huì)看到這些路徑所配置的一些地方,我的項(xiàng)目中這些配置在以下部分:

output配置為:

output: {
  path: 'xxx',
  filename: 'js/[name].[contenthash:8].js',
  publicPath: '',
  chunkFilename: 'js/[name].[contenthash:8].js'
}

plugin配置為:

/* config.plugin('extract-css') */
new MiniCssExtractPlugin(
  {
  filename: 'css/[name].[contenthash:8].css',
  chunkFilename: 'css/[name].[contenthash:8].css'
  }
),

loader配置為:

/* config.module.rule('images') */
{
  test: /\.(png|jpe?g|gif|webp)(\?.*)?$/,
  use: [
    /* config.module.rule('images').use('url-loader') */
    {
    loader: 'url-loader',
    options: {
      limit: 4096,
      fallback: {
      loader: 'file-loader',
      options: {
        name: 'img/[name].[hash:8].[ext]'
      }
      }
    }
    }
  ]
},
/* config.module.rule('svg') */
{
  test: /\.(svg)(\?.*)?$/,
  use: [
    /* config.module.rule('svg').use('file-loader') */
    {
    loader: 'file-loader',
    options: {
      name: 'img/[name].[hash:8].[ext]'
    }
    }
  ]
},

// 其他類型資源的loader等等

那么問(wèn)題就簡(jiǎn)單了,我們更改掉這些webpack配置就可以了。

更改webpack配置

需要更改的webpack相關(guān)配置如下:

js路徑配置更改

js路徑更改output配置即可,output配置在configureWebpack配置項(xiàng)中進(jìn)行更改,因?yàn)関ue.config.js中對(duì)于configureWebpack選項(xiàng)的配置將會(huì)被merge到webpack配置中,所以更改該項(xiàng)配置即可,如下:

module.exports = {
  configureWebpack: config => {
    // js output config
    config.output.filename = '[name].[contenthash:8].js'
    config.output.chunkFilename = '[name].[contenthash:8].js'

  },
}

更改MiniCssExtractPlugin插件配置

更改該配置需要先安裝MiniCssExtractPlugin插件到開(kāi)發(fā)依賴中,如下:

npm install --save-dev mini-css-extract-plugin
# 或者
yarn add mini-css-extract-plugin --dev

然后在vue.config.js文件中添加相關(guān)配置到chainWebpack即可,如下所示:

module.exports = {
  chainWebpack: config => {
    // css output config
    let miniCssExtractPlugin = new MiniCssExtractPlugin(
      {
        filename: '[name].[contenthash:8].css',
        chunkFilename: '[name].[contenthash:8].css'
      }
    )
    config.plugin('extract-css').use(miniCssExtractPlugin)
  },
}

更改各種資源loader配置

更改該配置仍然需要將相關(guān)配置添加到chainWepack配置項(xiàng)中,如下:

module.exports = {
  chainWebpack: config => {
    // image output config
    config.module.rule('images')
      .test(/\.(png|jpe?g|gif|webp)(\?.*)?$/)
      .use('url-loader')
      .loader('file-loader')
      .options({
        name: '[name].[hash:8].[ext]'
      })
    config.module.rule('svg')
      .test(/\.(svg)(\?.*)?$/)
      .use('file-loader')
      .loader('file-loader')
      .options({
        name: '[name].[hash:8].[ext]'
      })
  },
}

結(jié)語(yǔ)

總的配置項(xiàng)如下所示:

module.exports = {
  configureWebpack: config => {
    // js output config
    config.output.filename = '[name].[contenthash:8].js'
    config.output.chunkFilename = '[name].[contenthash:8].js'

  },
  chainWebpack: config => {
    // css output config
    let miniCssExtractPlugin = new MiniCssExtractPlugin(
      {
        filename: '[name].[contenthash:8].css',
        chunkFilename: '[name].[contenthash:8].css'
      }
    )
    config.plugin('extract-css').use(miniCssExtractPlugin)

    // image output config
    config.module.rule('images')
      .test(/\.(png|jpe?g|gif|webp)(\?.*)?$/)
      .use('url-loader')
      .loader('file-loader')
      .options({
        name: '[name].[hash:8].[ext]'
      })
    config.module.rule('svg')
      .test(/\.(svg)(\?.*)?$/)
      .use('file-loader')
      .loader('file-loader')
      .options({
        name: '[name].[hash:8].[ext]'
      })

  },
}

這時(shí),在運(yùn)行inspect檢查webpack配置,即可看到相關(guān)路徑前的css/,js/,img/等前綴已經(jīng)消失,快快打包嘗試吧!

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue3項(xiàng)目pc端瀏覽器樣式正常但移動(dòng)端部分樣式失效問(wèn)題的解決方法

    Vue3項(xiàng)目pc端瀏覽器樣式正常但移動(dòng)端部分樣式失效問(wèn)題的解決方法

    這篇文章主要介紹了Vue3項(xiàng)目pc端瀏覽器樣式正常但移動(dòng)端部分樣式失效問(wèn)題的解決方法,文中通過(guò)圖文講解的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下
    2024-07-07
  • vue地址欄直接輸入路由無(wú)效問(wèn)題的解決

    vue地址欄直接輸入路由無(wú)效問(wèn)題的解決

    這篇文章主要介紹了vue地址欄直接輸入路由無(wú)效問(wèn)題的解決,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-11-11
  • 淺談Vue路由快照實(shí)現(xiàn)思路及其問(wèn)題

    淺談Vue路由快照實(shí)現(xiàn)思路及其問(wèn)題

    這篇文章主要介紹了淺談Vue路由快照實(shí)現(xiàn)思路及其問(wèn)題,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • vue前后分離調(diào)起微信支付

    vue前后分離調(diào)起微信支付

    這篇文章主要為大家詳細(xì)介紹了vue前后分離調(diào)起微信支付,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • vue webpack多頁(yè)面構(gòu)建的實(shí)例代碼

    vue webpack多頁(yè)面構(gòu)建的實(shí)例代碼

    這篇文章主要介紹了vue webpack多頁(yè)面構(gòu)建的實(shí)例代碼,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2018-09-09
  • vue keep-alive中的生命周期解讀

    vue keep-alive中的生命周期解讀

    這篇文章主要介紹了vue keep-alive中的生命周期,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • el-select組件綁定change事件的踩坑記錄

    el-select組件綁定change事件的踩坑記錄

    這篇文章主要介紹了el-select組件綁定change事件的踩坑記錄,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • unix時(shí)間戳轉(zhuǎn)換的方法詳解

    unix時(shí)間戳轉(zhuǎn)換的方法詳解

    將 unix 時(shí)間戳轉(zhuǎn)換為日期時(shí)間和使用日期時(shí)間轉(zhuǎn)換為 unix 時(shí)間戳,在項(xiàng)目中常常用到,其中vue中的moment庫(kù)很是方便,下面小編就來(lái)為大家講講具體使用吧
    2023-09-09
  • 前端vue如何使用pptxgen.js導(dǎo)出PPT

    前端vue如何使用pptxgen.js導(dǎo)出PPT

    最近公司項(xiàng)目有個(gè)導(dǎo)出ppt的功能,在使用ppexgen.js一周完成功能之后,這篇文章主要給大家介紹了關(guān)于前端vue如何使用pptxgen.js導(dǎo)出PPT的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • Vue defineProperty使用教程

    Vue defineProperty使用教程

    Vue通過(guò)Object.defineProperty來(lái)實(shí)現(xiàn)監(jiān)聽(tīng)數(shù)據(jù)的改變和讀?。▽傩灾械膅etter和setter方法) 實(shí)現(xiàn)數(shù)據(jù)劫持。下面簡(jiǎn)單記錄一下,vue監(jiān)聽(tīng)數(shù)據(jù)變化的原理
    2023-01-01

最新評(píng)論

霞浦县| 儋州市| 蕲春县| 五家渠市| 郸城县| 漳浦县| 封丘县| 伊金霍洛旗| 高碑店市| 舒城县| 钟祥市| 渑池县| 资源县| 百色市| 上蔡县| 宁武县| 晋城| 临汾市| 庆阳市| 云龙县| 板桥市| 石屏县| 晋江市| 安国市| 沙湾县| 海南省| 格尔木市| 桓仁| 师宗县| 台前县| 巴中市| 建宁县| 鄂托克旗| 温宿县| 罗定市| 杭州市| 金塔县| 繁峙县| 新巴尔虎右旗| 澄迈县| 连平县|