欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue-cli3.0使用及部分配置詳解

 更新時(shí)間:2018年08月29日 11:19:36   作者:素燃  
這篇文章主要介紹了vue-cli3.0使用及部分配置詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

好長(zhǎng)一段時(shí)間沒有關(guān)注vue腳手架了,昨天因?yàn)樾枰獋€(gè)后臺(tái)模板,用腳手架

搞了一下,竟然發(fā)現(xiàn)指令不能用了,看官方文檔已經(jīng)升級(jí)3.0,也是試的玩了一下,

大致寫寫怎么玩的!

1.先全局安裝vue-cli3.0

檢測(cè)安裝:

vue -V

2.創(chuàng)建項(xiàng)目(這個(gè)就跟react創(chuàng)建腳手架項(xiàng)目比較像了)

 

這里如果你是第一次用3.0版本的話,是沒有前兩個(gè)的,而只有最后兩個(gè),這里是

讓你選的,第一個(gè)是默認(rèn)配置,一般選第二個(gè),自己配置,這里選擇最后一個(gè)

在選擇功能后,會(huì)詢問更細(xì)節(jié)的配置,

TypeScript:

是否使用class風(fēng)格的組件語法:Use class-style component syntax?

是否使用babel做轉(zhuǎn)義:Use Babel alongside TypeScript for auto-detected polyfills?

CSS Pre-processors:

選擇CSS 預(yù)處理類型:Pick a CSS pre-processor

Linter / Formatter

選擇Linter / Formatter規(guī)范類型:Pick a linter / formatter config

選擇lint方式,保存時(shí)檢查/提交時(shí)檢查:Pick additional lint features

Testing

選擇Unit測(cè)試方式

選擇E2E測(cè)試方式

當(dāng)你選擇后會(huì)出現(xiàn)上面圖上的東西,這里你可以自由選擇用哪些配置,按上下鍵

選擇哪一個(gè),按空格鍵確定,所有的都選擇好后,按enter鍵進(jìn)行下一步,這里

演示,我隨便選了幾個(gè)

下一步之后問詢問你安裝哪一種 CSS 預(yù)處理語言,你隨意選擇,我是一直用的less

上面這個(gè)是問你選擇哪個(gè)自動(dòng)化代碼格式化檢測(cè),配合vscode編輯器的

Prettier - Code formatter插件,我選的隨后一個(gè)

這里第一個(gè)選項(xiàng)是問你是否保存剛才的配置,選擇確定后你下次再創(chuàng)建新項(xiàng)目

就有你以前選擇的配置了,不用重新再配置一遍了

上邊這倆意思問你像,babel,postcss,eslint這些配置文件放哪?

第一個(gè)是:放獨(dú)立文件放置

第二個(gè)是:放package.json里

這里推薦放單獨(dú)配置文件,選第一個(gè)

上邊倒數(shù)第二行問你是否將以上這些將此保存為未來項(xiàng)目的預(yù)配置嗎?

最后一個(gè)是描述項(xiàng)目,你隨意選擇,點(diǎn)擊確定就開始下載模板了

下載好后,項(xiàng)目結(jié)構(gòu)就變成這樣了,相比2.0精簡(jiǎn)了很多,

然后cd 進(jìn)項(xiàng)目,啟動(dòng)服務(wù)npm run serve,

這里發(fā)現(xiàn)少了vue.config.js文件,那以前的配置怎么搞?

 

上邊是2.0的目錄結(jié)構(gòu)

 

這個(gè)是3.0的目錄結(jié)構(gòu),比2.0少了好多,這些都放在@vue/文件下了,你可以打開看看

下邊你要做的就是在根目錄下新建一個(gè)vue.config.js文件,進(jìn)行你的配置,具體配置看文檔,我在最下邊簡(jiǎn)單羅列了幾個(gè)

當(dāng)然如果你不想用3.0的話,還是可以繼續(xù)使用2.0的,官方文檔是這樣說的:

這里簡(jiǎn)單羅列vue,config.js一些配置項(xiàng)

當(dāng)然你配置接口地址時(shí)還是通過下邊這個(gè)來獲取

在main.js里或者單獨(dú)配置接口地址的文件里:

var env = process.env.NODE_ENV
console.log(env)
// vue.config.js 配置說明
// 這里只列一部分,具體配置慘考文檔啊
module.exports = {
  // baseUrl type:{string} default:'/' 
  // 將部署應(yīng)用程序的基本URL
  // 將部署應(yīng)用程序的基本URL。
  // 默認(rèn)情況下,Vue CLI假設(shè)您的應(yīng)用程序?qū)⒉渴鹪谟虻母夸浵隆?
  // https://www.my-app.com/。如果應(yīng)用程序部署在子路徑上,則需要使用此選項(xiàng)指定子路徑。例如,如果您的應(yīng)用程序部署在https://www.foobar.com/my-app/,集baseUrl到'/my-app/'.

  baseUrl: process.env.NODE_ENV === 'production' ? '/online/' : '/',

  // outputDir: 在npm run build時(shí) 生成文件的目錄 type:string, default:'dist'

  // outputDir: 'dist',

  // pages:{ type:Object,Default:undfind } 
/*
 構(gòu)建多頁面模式的應(yīng)用程序.每個(gè)“頁面”都應(yīng)該有一個(gè)相應(yīng)的JavaScript條目文件。該值應(yīng)該是一
 個(gè)對(duì)象,其中鍵是條目的名稱,而該值要么是指定其條目、模板和文件名的對(duì)象,要么是指定其條目
 的字符串,
 注意:請(qǐng)保證pages里配置的路徑和文件名 在你的文檔目錄都存在 否則啟動(dòng)服務(wù)會(huì)報(bào)錯(cuò)的
*/
  // pages: {
    // index: {
      // entry for the page
      // entry: 'src/index/main.js',
      // the source template
      // template: 'public/index.html',
      // output as dist/index.html
      // filename: 'index.html'
    // },
    // when using the entry-only string format,
    // template is inferred to be `public/subpage.html`
    // and falls back to `public/index.html` if not found.
    // Output filename is inferred to be `subpage.html`.
    // subpage: 'src/subpage/main.js'
  // },

  //  lintOnSave:{ type:Boolean default:true } 問你是否使用eslint
  lintOnSave: true,
  // productionSourceMap:{ type:Bollean,default:true } 生產(chǎn)源映射
  // 如果您不需要生產(chǎn)時(shí)的源映射,那么將此設(shè)置為false可以加速生產(chǎn)構(gòu)建
  productionSourceMap: false,
  // devServer:{type:Object} 3個(gè)屬性host,port,https
  // 它支持webPack-dev-server的所有選項(xiàng)

  devServer: {
    port: 8085, // 端口號(hào)
    host: 'localhost',
    https: false, // https:{type:Boolean}
    open: true, //配置自動(dòng)啟動(dòng)瀏覽器
    // proxy: 'http://localhost:4000' // 配置跨域處理,只有一個(gè)代理
    proxy: {
      '/api': {
        target: '<url>',
        ws: true,
        changeOrigin: true
      },
      '/foo': {
        target: '<other_url>'
      }
    }, // 配置多個(gè)代理
  }
}

啟用dll

啟用dll后,我們的動(dòng)態(tài)庫文件每次打包生成的vendor的[chunkhash]值就會(huì)一樣,其值可以是 true/false,也可以制定特定的代碼庫。

module.exports = {

dll: true

}

module.exports = {

dll: [

'dep-a',

'dep-b/some/nested/file.js'

]
}

靜態(tài)資源路徑

相對(duì)路徑

  1. 靜態(tài)資源路徑以 @ 開頭代表 <projectRoot>/src
  2. 靜態(tài)資源路徑以 ~ 開頭,可以引入node modules內(nèi)的資源

public文件夾里的靜態(tài)資源引用

# 在 public/index.html中引用靜態(tài)資源
<%= webpackConfig.output.publicPath %>
<link rel="shortcut icon" href="<%= webpackConfig.output.publicPath %>favicon.ico" rel="external nofollow"  >
# vue templates中,需要在data中定義baseUrl
<template>
 <img :src="`${baseUrl}my-image.png`">
</template>
<script>
 data () {
 return {
  baseUrl: process.env.BASE_URL
 }
 }
</script>

webpack配置修改

用 webpack-chain 修改webpack相關(guān)配置,強(qiáng)烈建議先熟悉webpack-chain和vue-cli 源碼,以便更好地理解這個(gè)選項(xiàng)的配置項(xiàng)。

對(duì)模塊處理配置

// vue.config.js
module.exports = {
 chainWebpack: config => {
 config.module
  .rule('js')
  .include
   .add(/some-module-to-transpile/) // 要處理的模塊
 }
}

修改webpack Loader配置

// vue.config.js
module.exports = {
 chainWebpack: config => {
 config.module
  .rule('scss')
  .use('sass-loader')
  .tap(options =>
  merge(options, {
   includePaths: [path.resolve(dirname, 'node_modules')],
  })
  )
 }
}

修改webpack Plugin配置

// vue.config.js
module.exports = {
 chainWebpack: config => {
 config
  .plugin('html')
  .tap(args => {
  return [/* new args to pass to html-webpack-plugin's constructor */]
  })
 }
}

eg: 在本次項(xiàng)目較小,只對(duì)uglifyjs進(jìn)行了少量的修改,后期如果還有配置上優(yōu)化會(huì)繼續(xù)添加。

chainWebpack: config => {
 if (process.env.NODE_ENV === 'production') {
  config
   .plugin('uglify')
   .tap(([options]) =>{
    // 去除 console.log
    return [Object.assign(options, {
     uglifyOptions: { compress: {
      drop_console : true,
      pure_funcs: ['console.log']
     }}
    })]
   })
 }
}

全局變量的設(shè)置

在項(xiàng)目根目錄創(chuàng)建以下項(xiàng)目:

.env    # 在所有環(huán)節(jié)中執(zhí)行
.env.local   # 在所有環(huán)境中執(zhí)行,git會(huì)ignored
.env.[mode]   # 只在特定環(huán)境執(zhí)行( [mode] 可以是 "development", "production" or "test" )
.env.[mode].local # 在特定環(huán)境執(zhí)行, git會(huì)ignored
.env.development # 只在生產(chǎn)環(huán)境執(zhí)行
.env.production  # 只在開發(fā)環(huán)境執(zhí)行

在文件里配置鍵值對(duì):

# 鍵名須以VUE_APP開頭
VUE_APP_SECRET=secret

在項(xiàng)目中訪問:

console.log(process.env.VUE_APP_SECRET)

這樣項(xiàng)目中的 process.env.VUE_APP_SECRET 就會(huì)被 secret 所替代。

vue-cli 3 就項(xiàng)目性能而言已經(jīng)相當(dāng)友好了,私有制定性也特別強(qiáng),各種配置也特別貼心,可以根據(jù)項(xiàng)目大小和特性制定私有預(yù)設(shè),對(duì)前期項(xiàng)目搭建而言效率極大提升了。

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

相關(guān)文章

  • vue日志之如何用select選中默認(rèn)值

    vue日志之如何用select選中默認(rèn)值

    這篇文章主要介紹了vue日志之如何select選中默認(rèn)值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • 基于Vue3實(shí)現(xiàn)旋轉(zhuǎn)木馬動(dòng)畫效果

    基于Vue3實(shí)現(xiàn)旋轉(zhuǎn)木馬動(dòng)畫效果

    這篇文章主要為大家介紹了如何利用Vue3實(shí)現(xiàn)旋轉(zhuǎn)木馬的動(dòng)畫效果,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Vue有一定的幫助,需要的可以參考一下
    2022-05-05
  • VUE中常用的四種高級(jí)方法總結(jié)

    VUE中常用的四種高級(jí)方法總結(jié)

    開發(fā)vue項(xiàng)目的時(shí)候一般都會(huì)開發(fā)很多自定義的全局組件,下面這篇文章主要給大家總結(jié)介紹了關(guān)于VUE中常用的四種高級(jí)方法,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • vue實(shí)現(xiàn)todolist功能、todolist組件拆分及todolist的刪除功能

    vue實(shí)現(xiàn)todolist功能、todolist組件拆分及todolist的刪除功能

    這篇文章主要介紹了vue實(shí)現(xiàn)todolist功能、todolist組件拆分及todolist的刪除功能,需要的朋友可以參考下
    2019-04-04
  • Vue實(shí)現(xiàn)docx、pdf格式文件在線預(yù)覽功能

    Vue實(shí)現(xiàn)docx、pdf格式文件在線預(yù)覽功能

    在業(yè)務(wù)中,如果遇到文檔管理類的功能,會(huì)出現(xiàn)需要在線預(yù)覽的業(yè)務(wù)需求,本文主要是通過第三方庫來實(shí)現(xiàn)文檔預(yù)覽功能,并將其封裝成preview組件,感興趣的可以了解一下
    2022-09-09
  • Django+Vue實(shí)現(xiàn)WebSocket連接的示例代碼

    Django+Vue實(shí)現(xiàn)WebSocket連接的示例代碼

    這篇文章主要介紹了Django+Vue實(shí)現(xiàn)WebSocket連接的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • vue的token刷新處理的方法

    vue的token刷新處理的方法

    這篇文章主要介紹了vue的token刷新處理的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-07-07
  • vue項(xiàng)目中openlayers繪制行政區(qū)劃

    vue項(xiàng)目中openlayers繪制行政區(qū)劃

    這篇文章主要為大家詳細(xì)介紹了vue項(xiàng)目中openlayers繪制行政區(qū)劃,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • vue中computed和watch的使用實(shí)例代碼解析

    vue中computed和watch的使用實(shí)例代碼解析

    這篇文章主要介紹了vue中computed和watch的綜合運(yùn)用實(shí)例,主要需求是點(diǎn)擊按鈕實(shí)現(xiàn)天氣的切換效果結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • Vue組合式API如何正確解構(gòu)props不會(huì)丟失響應(yīng)性

    Vue組合式API如何正確解構(gòu)props不會(huì)丟失響應(yīng)性

    響應(yīng)式?API?賦予了組合式?API?一大坨可能性的同時(shí),代碼精簡(jiǎn),雖然但是,我們應(yīng)該意識(shí)到響應(yīng)性的某些陷阱,比如丟失響應(yīng)性,在本文中,我們將學(xué)習(xí)如何正確解構(gòu)?Vue?組件的?props,使得?props?不會(huì)丟失響應(yīng)性
    2024-01-01

最新評(píng)論