Vue CLi3入門

地址

Vue CLi3 github
Vue CLi web

安裝

命名方式已經(jīng)改為npm推薦的作用域規(guī)則腿时,詳情查看此文章

npm i @vue/cli -g
yarn add @vue/cli global
# 查看版本
vue -V

創(chuàng)建一個(gè)項(xiàng)目

vue create clidemoe  # 2.0中 vue init webpack clidemoe

如果版本小于3.0會(huì)提示讓你升級(jí)3.0以上勉耀。

第一次創(chuàng)建只會(huì)有兩個(gè)選項(xiàng)(default和Manually select features)狸捕,1和2是我之前創(chuàng)建保存的慧脱。
這里我們主要看Manually select features:

首先是特性選擇(按空格鍵選中或取消拍皮,a全選隧膏,i反選):

接著是選擇路由是否使用history模式:
Use history mode for router? (Requires proper server setup for index fallback in production) (Y/n)

接著選擇使用哪種css預(yù)處理器:

最后選擇代碼風(fēng)格等:

最后會(huì)問(wèn)你是否保存本次選擇的配置:

接著又會(huì)問(wèn)你特性的存放方式:

最后會(huì)問(wèn)你是否保存本次預(yù)設(shè)

最后出現(xiàn)這兩行就說(shuō)明創(chuàng)建完成了:

創(chuàng)建方式2:

使用圖形化vue ui創(chuàng)建項(xiàng)目:
  1. 選擇包管理器
  2. 選擇配置奠宜,可以選擇默認(rèn)包颁,也可以自己手動(dòng)配置(一般手動(dòng)配置)瞻想,還可以選擇之前配置過(guò)的(前提是有保存)
  3. 選擇功能(插件)
  4. 選擇配置
  5. 如果勾選了保存預(yù)設(shè),會(huì)有彈框讓你輸入這次保存的預(yù)設(shè)名
    創(chuàng)建好了娩嚼,看看頁(yè)面

    插件

    依賴

默認(rèn)啟動(dòng)服務(wù)方式:

npm run serve  # 2.0中 npm run dev
npx vue-cli-service serve

對(duì)比:
CLi2啟動(dòng)方式是webpack-dev-server --inline --progress --config build/webpack.dev.conf.js蘑险,使用的是webpack-dev-server搭的服務(wù)
CLi3啟動(dòng)方式是vue-cli-service serve
vue-cli-service serve就是CLi服務(wù),文件位于node_modules@vue\cli-service\bin

目錄結(jié)構(gòu)
cli2

cli3

相較于2.0岳悟,3.0的目錄結(jié)構(gòu)簡(jiǎn)單了許多佃迄,少了build、config兩個(gè)目錄贵少,安裝時(shí)自動(dòng)下載了node_modules呵俏,3.0的webpack配置可以在根目錄新建一個(gè)vue.config.js文件。
Vue CLi3.0刪除了config和build文件夾春瞬,現(xiàn)在配置webpack只需要在項(xiàng)目的根目錄下新建vue.config.js文件

#vue.config.js 完整默認(rèn)配置
module.exports = {
     // 基本路徑
     baseUrl: '/',
     // 輸出文件目錄
     outputDir: 'dist',
     // 用于嵌套生成的靜態(tài)資產(chǎn)(js柴信,css,img宽气,fonts)的目錄随常。
     assetsDir: '',
     // 以多頁(yè)模式構(gòu)建應(yīng)用程序。
     pages: undefined,
     // eslint-loader 是否在保存的時(shí)候檢查
     lintOnSave: true,
     // 是否使用包含運(yùn)行時(shí)編譯器的Vue核心的構(gòu)建萄涯。
     runtimeCompiler: false,
     // 默認(rèn)情況下babel-loader忽略其中的所有文件node_modules绪氛。
     transpileDependencies: [],
     // 生產(chǎn)環(huán)境sourceMap
     productionSourceMap: true,
     // webpack配置
     configureWebpack: () => {},
     chainWebpack: () => {},
     // css相關(guān)配置
     css: {
      // 啟用 CSS modules
      modules: false,
      // 是否使用css分離插件
      extract: true,
      // 開(kāi)啟 CSS source maps?
      sourceMap: false,
      // css預(yù)設(shè)器配置項(xiàng)
      loaderOptions: {},
     },
     // webpack-dev-server 相關(guān)配置
     devServer: {
      host: '0.0.0.0',
      port: 8080,
      https: false,
      hotOnly: false,
      proxy: null, // 設(shè)置代理
      before: app => {}
     },
     // enabled by default if the machine has more than 1 cores
     parallel: require('os').cpus().length > 1,
     // PWA 插件相關(guān)配置
     pwa: {},
     // 第三方插件配置
     pluginOptions: {
      // ...
     }
}

瀏覽器兼容性

在package.json文件里多了一個(gè)browserslist字段,這個(gè)字段指定了項(xiàng)目兼容到哪些瀏覽器涝影。

"browserslist": [
    "> 1%",
    "last 2 versions",
    "not ie <= 8"
  ]

這個(gè)字段會(huì)被babel用來(lái)確定轉(zhuǎn)義的js特性和需要添加的css前綴枣察。
參考資料:http://www.reibang.com/p/bd9cb7861b85

插件

vue add eslint
vue add @vue/cli-plugin-eslint

安裝后會(huì)在src目錄下生成一個(gè)plugins目錄,里面會(huì)生成插件的配置文件燃逻。

vue add 的設(shè)計(jì)意圖是為了安裝和調(diào)用 Vue CLI 插件序目。這不意味著替換掉普通的 npm 包。對(duì)于這些普通的 npm 包伯襟,你仍然需要選用包管理器猿涨。
我們推薦在運(yùn)行 vue add 之前將項(xiàng)目的最新?tīng)顟B(tài)提交,因?yàn)樵撁羁赡苷{(diào)用插件的文件生成器并很有可能更改你現(xiàn)有的文件姆怪。

HTML和靜態(tài)資源

CSS相關(guān)

Vue CLI 項(xiàng)目默認(rèn)支持PostCss叛赚、CSS Modules 和 包含 Sass、Less稽揭、stylus在內(nèi)的預(yù)處理器(包還是要安裝的俺附,只是不用配置了)。
預(yù)處理器:
在創(chuàng)建項(xiàng)目的時(shí)候選擇預(yù)處理器(sass/less/stylus)溪掀。如果當(dāng)時(shí)沒(méi)有選好事镣,內(nèi)置的webpack任然會(huì)被預(yù)配置為可以完成所有的處理,你也可以手動(dòng)安裝相應(yīng)的webpack loader:

npm i sass-loader node-sass -D
npm i less-loader less -D
npm i stylus-loader stylus -D

PostCSS:
Vue CLi默認(rèn)開(kāi)啟了autoprefixer(自動(dòng)添加前綴)揪胃,如果要配置目標(biāo)瀏覽器蛮浑,可使用package.json的browserslist字段唠叛,所以開(kāi)發(fā)時(shí)只需使用無(wú)前綴的css規(guī)則即可只嚣。

環(huán)境變量和模式

VueCLI移除了配置文件目錄后沮稚,如何自定義配置環(huán)境變量和模式?
環(huán)境變量:
一般項(xiàng)目中册舞,我們針對(duì)不同的開(kāi)發(fā)環(huán)境蕴掏,會(huì)配置不同的環(huán)境變量,下面這些文件會(huì)在不同的環(huán)境下被載入:

  • .env #在所有環(huán)境中載入
  • .env.development #在開(kāi)發(fā)環(huán)境中被載入
  • .env.production #在生產(chǎn)環(huán)境中被載入
  • .env.local #在所有環(huán)境中載入调鲸,會(huì)被git忽略
  • .env.development.local #在開(kāi)發(fā)環(huán)境中載入盛杰,但會(huì)被git忽略
  • .env.development.local #在生產(chǎn)環(huán)境中載入,但會(huì)被git忽略
  1. 在根目錄下新建兩個(gè)文件.env.development藐石,.env.production即供。用這兩個(gè)文件存放環(huán)境變量。
// env.development
NODE_ENV=development
VUE_APP_URL=http://123.com

// env.production
NODE_ENV=production
VUE_APP_URL=http://456.com

變量必須以VUE_APP_開(kāi)頭
被載入的變量將會(huì)被vue-cli-service的所有命令于微、插件逗嫡、依賴可用。

tips:
為一個(gè)特定模式準(zhǔn)備的環(huán)境文件將會(huì)比一般的環(huán)境文件擁有更高的優(yōu)先級(jí)株依。(列如.env.development的優(yōu)先級(jí)比.env高)驱证。

模式:
默認(rèn)情況寫,一個(gè)Vue CLi項(xiàng)目有三個(gè)模式:

  • development 模式用于 vue-cli-service serve
  • production 模式用于 vue-cli-service build 和 vue-cli-service test:e2e
  • test 模式用于 vue-cli-service test:unit

每個(gè)模式都會(huì)將NODE_ENV的值設(shè)置為模式的名稱——比如在development模式下NODE_ENV的值會(huì)被設(shè)置為development恋腕。
可以在package.json中抹锄,通過(guò)傳遞 --mode 選項(xiàng)參數(shù)為命令行指定模式。

dev-build:"vue-cli-service build --mode development"    #指定模式

案例

//vue.config.js
module.exports = {
  baseUrl: process.env.NODE_ENV !== 'production' ? '/' : '/bl/',
// 這里在webpack配置時(shí)判斷不同環(huán)境下使用不同配置
  configureWebpack: config => {
    if (process.env.NODE_ENV === "development") {
        config.devtool = "source-map";
    } else if (process.env.NODE_ENV === "production") {
        config.devtool = "eval-source-map";
    }
  }
}

如果安裝完vue-cli3后荠藤,還想用vue-cli2怎么辦伙单?這個(gè)時(shí)候就需要安裝一個(gè)橋接工具了

npm install -g @vue/cli-init
//安裝完后 就還可以使用 vue init 命令
vue init webpack my-demo
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市哈肖,隨后出現(xiàn)的幾起案子吻育,更是在濱河造成了極大的恐慌,老刑警劉巖牡彻,帶你破解...
    沈念sama閱讀 217,185評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件扫沼,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡庄吼,警方通過(guò)查閱死者的電腦和手機(jī)缎除,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)总寻,“玉大人器罐,你說(shuō)我怎么就攤上這事〗バ校” “怎么了轰坊?”我有些...
    開(kāi)封第一講書人閱讀 163,524評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵铸董,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我肴沫,道長(zhǎng)粟害,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 58,339評(píng)論 1 293
  • 正文 為了忘掉前任颤芬,我火速辦了婚禮悲幅,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘站蝠。我一直安慰自己汰具,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評(píng)論 6 391
  • 文/花漫 我一把揭開(kāi)白布菱魔。 她就那樣靜靜地躺著留荔,像睡著了一般。 火紅的嫁衣襯著肌膚如雪澜倦。 梳的紋絲不亂的頭發(fā)上聚蝶,一...
    開(kāi)封第一講書人閱讀 51,287評(píng)論 1 301
  • 那天,我揣著相機(jī)與錄音肥隆,去河邊找鬼既荚。 笑死,一個(gè)胖子當(dāng)著我的面吹牛栋艳,可吹牛的內(nèi)容都是我干的恰聘。 我是一名探鬼主播,決...
    沈念sama閱讀 40,130評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼吸占,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼晴叨!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起矾屯,我...
    開(kāi)封第一講書人閱讀 38,985評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤兼蕊,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后件蚕,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體孙技,經(jīng)...
    沈念sama閱讀 45,420評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評(píng)論 3 334
  • 正文 我和宋清朗相戀三年排作,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了牵啦。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,779評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡妄痪,死狀恐怖哈雏,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤裳瘪,帶...
    沈念sama閱讀 35,477評(píng)論 5 345
  • 正文 年R本政府宣布土浸,位于F島的核電站,受9級(jí)特大地震影響彭羹,放射性物質(zhì)發(fā)生泄漏黄伊。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評(píng)論 3 328
  • 文/蒙蒙 一皆怕、第九天 我趴在偏房一處隱蔽的房頂上張望毅舆。 院中可真熱鬧,春花似錦愈腾、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,716評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至吮成,卻和暖如春橱乱,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背粱甫。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,857評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工泳叠, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人茶宵。 一個(gè)月前我還...
    沈念sama閱讀 47,876評(píng)論 2 370
  • 正文 我出身青樓危纫,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親乌庶。 傳聞我的和親對(duì)象是個(gè)殘疾皇子种蝶,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 1 Webpack 1.1 概念簡(jiǎn)介 1.1.1 WebPack是什么 1、一個(gè)打包工具 2瞒大、一個(gè)模塊加載工具 3...
    Kevin_Junbaozi閱讀 6,659評(píng)論 0 16
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理螃征,服務(wù)發(fā)現(xiàn),斷路器透敌,智...
    卡卡羅2017閱讀 134,654評(píng)論 18 139
  • 長(zhǎng)發(fā)齊眉眼難睜 春風(fēng)拂面玉虛宮 斜草倚靠梧桐木 一抹新綠似夢(mèng)中
    三夫之閱讀 163評(píng)論 0 0
  • 窗外盯滚,燈火輝煌,人們依舊忙忙碌碌酗电,在這一年中的最后時(shí)刻魄藕,都在做著同一件事:在迎接新年的鞭炮聲響起之前,一起...
    偷閑躲靜閱讀 338評(píng)論 0 0