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

vue-cli-service的參數(shù)配置過程

 更新時間:2023年04月29日 11:02:46   作者:qlingsu  
這篇文章主要介紹了vue-cli-service的參數(shù)配置過程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

vue-cli-service的參數(shù)配置

vue-cli-service serve

Usage: vue-cli-service serve [options]

Options:

--open 服務(wù)器啟動時打開瀏覽器

--copy 將URL復(fù)制到服務(wù)器啟動時的剪貼板 (直接到瀏覽器去粘貼就OK了 http://localhost:8080/)

--mode 指定環(huán)境模式 (默認: development)

--host host 地址 (default: 0.0.0.0)

--port 端口號 (default: 8080)

--https 使用https (default: false)

vue-cli-service build

Usage: vue-cli-service build [options] [entry|pattern]

Options:

--mode 指定環(huán)境模式 (default: production)

--dest 指定輸出目錄 (default: dist)

--modern 構(gòu)建兩個版本的 js 包:一個面向支持現(xiàn)代瀏覽器的原生 ES2015+ 包,以及一個針對其他舊瀏覽器的包。

--target 允許您以項目庫或Web組件的形式在項目內(nèi)部構(gòu)建任何組件 app | lib | wc | wc-async (default: app) ???

--name lib或者web組件庫的名稱 (default: "name" in package.json or entry filename)

--no-clean 在構(gòu)建項目之前不要刪除輸出目錄(dist)

--report 生成report.html以幫助分析包內(nèi)容

--report-json 生成report.json來幫助分析包內(nèi)容

--watch 監(jiān)聽 - 當(dāng)有改變時 自動重新打包~

vue-cli-service inspect

使用它vue-cli-service inspect來檢查Vue CLI項目中的webpack配置。有關(guān)更多詳細信息,請參閱檢查Webpack配置

Usage: vue-cli-service inspect [options] [...paths]

Options:

--mode 指定環(huán)境模式 (default: development)

vue-cli中執(zhí)行的vue-cli-service

最近又整回vue去了,不說了,還是腳手架先整吧。

假設(shè)你已經(jīng)通過vue create vue-base

有了vue-base 項目

然后我看到

"scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "lint": "vue-cli-service lint"
  },

這里執(zhí)行的是vue-cli-service

開心 又來活兒了

我好奇它的webpack基礎(chǔ)配置是什么?就是我本地項目文件不做任何vue.config.js的配置,它能實現(xiàn)什么?

vue-cli-service 其實執(zhí)行的是 node_modules/.bin/vue-cli-service

最終是執(zhí)行了@vue/cli-service

const Service = require('../lib/Service')
const service = new Service(process.env.VUE_CLI_CONTEXT || process.cwd())

這里看到首先去new Service,這里初始化配置

然后執(zhí)行了

service.run(command, args, rawArgv).catch(err => {
  error(err)
  process.exit(1)
})

run函數(shù)里面先執(zhí)行了this.init 把默認配置初始化好

然后執(zhí)行了command 這里以server為例,去執(zhí)行了 lib/commands下面對應(yīng)的serve.js文件

可以看到這里面也有一些配置,覆蓋了之前的初始化的配置

lib/commands/serve.js

const defaults = {
  host: '0.0.0.0',
  port: 8080,
  https: false
}

如何更改vue-cli-service里面默認的端口號呢?

把啟動命令更改為vue-cli-service serve --port 7001

后續(xù)可以看到在這里把初始化的很多參數(shù)加到 webpack配置里面來

Service.js文件里面

loadUserOptions 這個方法里面獲取了用戶的vue.config.js命名的文件信息或者是package.json 里面 vue字段的信息

關(guān)于配置 Service.js這里

const { defaults, validate } = require('./options')
options.js
export default {}

出來一份配置

說一下這個文件里面引入的@vue/cli-shared-utils 就像一個校驗一樣,這里處理的很棒!

const builtInPlugins = [
      './commands/serve',
      './commands/build',
      './commands/inspect',
      './commands/help',
      // config plugins are order sensitive
      './config/base',
      './config/css',
      './config/prod',
      './config/app'
    ].map(idToPlugin)
    if (inlinePlugins) {
      plugins = useBuiltIn !== false
        ? builtInPlugins.concat(inlinePlugins)
        : inlinePlugins
    } else {
      const projectPlugins = Object.keys(this.pkg.devDependencies || {})
        .concat(Object.keys(this.pkg.dependencies || {}))
        .filter(isPlugin)
        .map(id => {
          if (
            this.pkg.optionalDependencies &&
            id in this.pkg.optionalDependencies
          ) {
            let apply = () => {}
            try {
              apply = require(id)
            } catch (e) {
              warn(`Optional dependency ${id} is not installed.`)
            }

            return { id, apply }
          } else {
            return idToPlugin(id)
          }
        })
      plugins = builtInPlugins.concat(projectPlugins)
    }

里面有一個這個對象,配置各個命令和配置,看起來是做了prod和base的區(qū)分配置 后面是做了一個合并

prod.js里面看到

首先是通過webpack-chain 鏈接的各個配置

module.exports = (api, options) => {
  api.chainWebpack(webpackConfig => {
    if (process.env.NODE_ENV === 'production') {
 	 production 環(huán)境
      webpackConfig
        .mode('production')   //瞧這里設(shè)置了mode
        .devtool(options.productionSourceMap ? 'source-map' : false)
	
      // keep module.id stable when vendor modules does not change
      webpackConfig
        .plugin('hash-module-ids')
          .use(require('webpack/lib/HashedModuleIdsPlugin'), [{
            hashDigest: 'hex'
          }])

      // disable optimization during tests to speed things up
      if (process.env.VUE_CLI_TEST) {
        webpackConfig.optimization.minimize(false)
      }
    }
  })
}

在base.js

然后你就看到了這么些的默認配置

webpackConfig
      .mode('development')
      .context(api.service.context)
      .entry('app')
        .add('./src/main.js')
        .end()
      .output
        .path(api.resolve(options.outputDir))
        .filename(isLegacyBundle ? '[name]-legacy.js' : '[name].js')
        .publicPath(options.publicPath)

基礎(chǔ)的entry ,output

alias
        .set('@', api.resolve('src'))
        .set(
          'vue$',
          options.runtimeCompiler
            ? 'vue/dist/vue.esm.js'
            : 'vue/dist/vue.runtime.esm.js'
        )

配置了別名 @指向項目src目錄

以下是在 vue 2的項目中,一旦換成 vue 3的項目就沒了,所以放在了try catch中

這里可以看到對, .vue文件啟用了cache-loader,緩存,啟用了vue-loader 這個來轉(zhuǎn)換vue文件

繼續(xù)往下處理了images、svg、media、fonts文件

很意外的看到了關(guān)于.pug后綴文件的處理,可能是其它包里面的?這里沒有仔細去看了

最后

增加了terser默認的內(nèi)置壓縮工具包,做壓縮

這里的配置有一個terserOptions.js文件

更改的

https://cli.vuejs.org/zh/config/#vue-config-js

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue拖動截圖功能的簡單實現(xiàn)方法

    Vue拖動截圖功能的簡單實現(xiàn)方法

    最近項目上要做一個車牌識別的功能,就需要做拖動截圖功能了,因為前段是vue,所以下面這篇文章主要給大家介紹了關(guān)于Vue拖動截圖功能的簡單實現(xiàn)方法,需要的朋友可以參考下
    2021-07-07
  • vue-router中hash模式與history模式的區(qū)別

    vue-router中hash模式與history模式的區(qū)別

    為了構(gòu)建 SPA(單頁面應(yīng)用),需要引入前端路由系統(tǒng),這就是 Vue-Router 存在的意義,而這篇文章主要給大家介紹了關(guān)于vue-router中兩種模式區(qū)別的相關(guān)資料,分別是hash模式、history模式,需要的朋友可以參考下
    2021-06-06
  • Vue?table新增、編輯解讀

    Vue?table新增、編輯解讀

    這篇文章主要介紹了Vue?table新增、編輯,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Vue.extend 編程式插入組件的實現(xiàn)

    Vue.extend 編程式插入組件的實現(xiàn)

    這篇文章主要介紹了Vue.extend 編程式插入組件的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • vue如何解決輪播圖(Swiper)第一張圖片一閃而過問題

    vue如何解決輪播圖(Swiper)第一張圖片一閃而過問題

    這篇文章主要介紹了vue如何解決輪播圖(Swiper)第一張圖片一閃而過問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • 關(guān)于Vue中this.$set的正確使用

    關(guān)于Vue中this.$set的正確使用

    我們在項目開發(fā)的過程中,經(jīng)常會遇到這種情況:為data中的某一個對象添加一個屬性,我們該如何解決這個問題呢,下面小編給大家?guī)砹薞ue中this.$set的正確使用,感興趣的朋友跟隨小編一起看看吧
    2022-12-12
  • vue使用vue-json-viewer展示JSON數(shù)據(jù)的詳細步驟

    vue使用vue-json-viewer展示JSON數(shù)據(jù)的詳細步驟

    最近在開發(fā)一個公司的投放管理系統(tǒng)的操作日志模塊,要查看某條操作日志的請求參數(shù),要將請求的參數(shù)以JSON格式的形式展示出來,下面這篇文章主要給大家介紹了vue使用vue-json-viewer展示JSON數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下
    2022-09-09
  • vue3生成隨機密碼的示例代碼

    vue3生成隨機密碼的示例代碼

    本文主要介紹了vue3生成隨機密碼的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • Vue3?源碼分析reactive?readonly實例

    Vue3?源碼分析reactive?readonly實例

    這篇文章主要為大家介紹了Vue3?源碼分析reactive?readonly實例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • Vue3警告:Failed to resolve component:XXX的詳細解決辦法

    Vue3警告:Failed to resolve component:XXX的詳細解決辦法

    最近在一個vue3項目中遇到了報錯,整理了些解決辦法,這篇文章主要給大家介紹了關(guān)于Vue3警告:Failed to resolve component:XXX的詳細解決辦法,文中介紹的非常詳細,需要的朋友可以參考下
    2023-05-05

最新評論

吴桥县| 新巴尔虎左旗| 巴林右旗| 老河口市| 彰化市| 宁夏| 皋兰县| 衡东县| 日喀则市| 航空| 吴堡县| 江陵县| 大关县| 酒泉市| 手游| 乐山市| 揭东县| 梁河县| 米易县| 姜堰市| 沙湾县| 临海市| 东光县| 双牌县| 托里县| 棋牌| 盐亭县| 宽甸| 高安市| 乌什县| 镇赉县| 凤翔县| 天峨县| 永宁县| 子洲县| 太和县| 古丈县| 正阳县| 广丰县| 罗源县| 灵川县|