日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)VueCLI教程:VueCLIwebpack相關(guān)

簡單的配置方式

調(diào)整 webpack 配置最簡單的方式就是在 Vue.config.js 中的 configureWebpack 選項提供一個對象:

創(chuàng)新互聯(lián)公司專注于企業(yè)成都全網(wǎng)營銷、網(wǎng)站重做改版、青神網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、成都h5網(wǎng)站建設(shè)、商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為青神等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

// vue.config.js
module.exports = {
  configureWebpack: {
    plugins: [
      new MyAwesomeWebpackPlugin()
    ]
  }
}

該對象將會被 webpack-merge 合并入最終的 webpack 配置。

警告

有些 webpack 選項是基于 vue.config.js 中的值設(shè)置的,所以不能直接修改。例如你應(yīng)該修改 vue.config.js 中的 outputDir 選項而不是修改 output.path;你應(yīng)該修改 vue.config.js 中的 publicPath 選項而不是修改 output.publicPath。這樣做是因為 vue.config.js 中的值會被用在配置里的多個地方,以確保所有的部分都能正常工作在一起。

如果你需要基于環(huán)境有條件地配置行為,或者想要直接修改配置,那就換成一個函數(shù) (該函數(shù)會在環(huán)境變量被設(shè)置之后懶執(zhí)行)。該方法的第一個參數(shù)會收到已經(jīng)解析好的配置。在函數(shù)內(nèi),你可以直接修改配置,或者返回一個將會被合并的對象:

// vue.config.js
module.exports = {
  configureWebpack: config => {
    if (process.env.NODE_ENV === 'production') {
      // 為生產(chǎn)環(huán)境修改配置...
    } else {
      // 為開發(fā)環(huán)境修改配置...
    }
  }
}

鏈?zhǔn)讲僮?(高級)

Vue CLI 內(nèi)部的 webpack 配置是通過 webpack-chain 維護(hù)的。這個庫提供了一個 webpack 原始配置的上層抽象,使其可以定義具名的 loader 規(guī)則和具名插件,并有機(jī)會在后期進(jìn)入這些規(guī)則并對它們的選項進(jìn)行修改。

它允許我們更細(xì)粒度的控制其內(nèi)部配置。接下來有一些常見的在 vue.config.js 中的 chainWebpack 修改的例子。

提示

當(dāng)你打算鏈?zhǔn)皆L問特定的 loader 時,vue inspect 會非常有幫助。

修改 Loader 選項

// vue.config.js
module.exports = {
  chainWebpack: config => {
    config.module
      .rule('vue')
      .use('vue-loader')
        .loader('vue-loader')
        .tap(options => {
          // 修改它的選項...
          return options
        })
  }
}

提示

對于 CSS 相關(guān) loader 來說,我們推薦使用 css.loaderOptions 而不是直接鏈?zhǔn)街付?loader。這是因為每種 CSS 文件類型都有多個規(guī)則,而 css.loaderOptions 可以確保你通過一個地方影響所有的規(guī)則。

添加一個新的 Loader

// vue.config.js
module.exports = {
  chainWebpack: config => {
    // GraphQL Loader
    config.module
      .rule('graphql')
      .test(/\.graphql$/)
      .use('graphql-tag/loader')
        .loader('graphql-tag/loader')
        .end()
      // 你還可以再添加一個 loader
      .use('other-loader')
        .loader('other-loader')
        .end()
  }
}

替換一個規(guī)則里的 Loader

如果你想要替換一個已有的基礎(chǔ) loader,例如為內(nèi)聯(lián)的 SVG 文件使用 vue-svg-loader 而不是加載這個文件:

// vue.config.js
module.exports = {
  chainWebpack: config => {
    const svgRule = config.module.rule('svg')

    // 清除已有的所有 loader。
    // 如果你不這樣做,接下來的 loader 會附加在該規(guī)則現(xiàn)有的 loader 之后。
    svgRule.uses.clear()

    // 添加要替換的 loader
    svgRule
      .use('vue-svg-loader')
        .loader('vue-svg-loader')
  }
}

修改插件選項

// vue.config.js
module.exports = {
  chainWebpack: config => {
    config
      .plugin('html')
      .tap(args => {
        return [/* 傳遞給 html-webpack-plugin's 構(gòu)造函數(shù)的新參數(shù) */]
      })
  }
}

你需要熟悉 webpack-chain 的 API 并閱讀一些源碼以便了解如何最大程度利用好這個選項,但是比起直接修改 webpack 配置,它的表達(dá)能力更強(qiáng),也更為安全。

比方說你想要將 index.html 默認(rèn)的路徑從 /Users/username/proj/public/index.html 改為 /Users/username/proj/app/templates/index.html。通過參考 html-webpack-plugin 你能看到一個可以傳入的選項列表。我們可以在下列配置中傳入一個新的模板路徑來改變它:

// vue.config.js
module.exports = {
  chainWebpack: config => {
    config
      .plugin('html')
      .tap(args => {
        args[0].template = '/Users/username/proj/app/templates/index.html'
        return args
      })
  }
}

你可以通過接下來要討論的工具 vue inspect 來確認(rèn)變更。

審查項目的 webpack 配置

因為 @vue/cli-service 對 webpack 配置進(jìn)行了抽象,所以理解配置中包含的東西會比較困難,尤其是當(dāng)你打算自行對其調(diào)整的時候。

vue-cli-service 暴露了 inspect 命令用于審查解析好的 webpack 配置。那個全局的 vue 可執(zhí)行程序同樣提供了 inspect 命令,這個命令只是簡單的把 vue-cli-service inspect 代理到了你的項目中。

該命令會將解析出來的 webpack 配置、包括鏈?zhǔn)皆L問規(guī)則和插件的提示打印到 stdout。

你可以將其輸出重定向到一個文件以便進(jìn)行查閱:

vue inspect > output.js

注意它輸出的并不是一個有效的 webpack 配置文件,而是一個用于審查的被序列化的格式。

你也可以通過指定一個路徑來審查配置的一小部分:

# 只審查第一條規(guī)則
vue inspect module.rules.0

或者指向一個規(guī)則或插件的名字:

vue inspect --rule vue
vue inspect --plugin html

最后,你可以列出所有規(guī)則和插件的名字:

vue inspect --rules
vue inspect --plugins

以一個文件的方式使用解析好的配置

有些外部工具可能需要通過一個文件訪問解析好的 webpack 配置,比如那些需要提供 webpack 配置路徑的 IDE 或 CLI。在這種情況下你可以使用如下路徑:

/node_modules/@vue/cli-service/webpack.config.js

該文件會動態(tài)解析并輸出 vue-cli-service 命令中使用的相同的 webpack 配置,包括那些來自插件甚至是你自定義的配置。


網(wǎng)頁題目:創(chuàng)新互聯(lián)VueCLI教程:VueCLIwebpack相關(guān)
文章網(wǎng)址:http://m.5511xx.com/article/dhppgoh.html