解析vue-cli@3.0使用方式和舊版本的差異-創(chuàng)新互聯(lián)

本文在介紹關(guān)于vue-cli@3.0的基礎(chǔ)上,重點(diǎn)探討了vue-cli@3.0的使用方式以及和舊版本的差異,本文內(nèi)容緊湊,希望大家可以有所收獲。

創(chuàng)新互聯(lián)成立與2013年,是專(zhuān)業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元虎丘做網(wǎng)站,已為上家服務(wù),為虎丘各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18982081108

2018年8月10號(hào),vue-cli3.0面世

@2.9.3的使用
1.下載vue-cli和安裝項(xiàng)目
cnpm i -g vue-cli#2.9.3

vue init webpack my-app

@3.0以上,目前beta版本的使用
1.下載vue-cli和安裝項(xiàng)目
npm install -g @vue/cli

vue create <Project Name> //文件名 不支持駝峰(含大寫(xiě)字母)

全局安裝過(guò)舊版本的 vue-cli(1.x 或 2.x)要先卸載它,否則跳過(guò)此步:

npm uninstall vue-cli -g //或者 yarn global remove vue-cli

Vue CLI 3.0與其他的版本完全不同,它經(jīng)歷了重構(gòu),目的是:

1.盡可能減少現(xiàn)代前端工具在配置上的煩惱,尤其是在開(kāi)發(fā)者將多個(gè)工具混合使用時(shí);

2.盡可能在工具鏈中加入最佳實(shí)踐,并讓其成為Vue應(yīng)用程序的默認(rèn)實(shí)踐。

Vue CLI的核心目標(biāo)是為基于webpack 4構(gòu)建的預(yù)配置構(gòu)建提供設(shè)置,目標(biāo)是大限度地減少開(kāi)發(fā)人員配置的次數(shù),所以Vue CLI 3對(duì)具有以下特點(diǎn)的項(xiàng)目都支持開(kāi)箱即用:

預(yù)配置webpack功能,如模塊熱替換、代碼拆分、 搖樹(shù)優(yōu)化(tree-shaking)、高效持久化緩存等;

通過(guò)Babel 7 + preset-env(Babel插件)對(duì) ES2017進(jìn)行轉(zhuǎn)換和基于使用情況注入polyfill

支持PostCSS(默認(rèn)啟用autoprefixer)和所有主要的CSS預(yù)處理器

Modern mode:并行發(fā)布原生ES2017 +bundle和傳統(tǒng)bundle

多頁(yè)面模式:構(gòu)建具有多個(gè)HTML / JS入口點(diǎn)的應(yīng)用程序

構(gòu)建目標(biāo):將Vue單文件組件構(gòu)建成為庫(kù)或原生Web組件(詳情如下)

可以在創(chuàng)建新項(xiàng)目時(shí)混合選用多種集成:

TypeScript

PWA

Vue Router & Vuex

ESLint / TSLint / Prettier

用Jest或Mocha進(jìn)行單元測(cè)試

用Cypress 或者 Nightwatch進(jìn)行E2E 測(cè)試

vue-cli3 創(chuàng)建的時(shí)候并不會(huì)自動(dòng)創(chuàng)建vue.config.js,因?yàn)檫@個(gè)是個(gè)可選項(xiàng),所以一般都是需要修改webpack的時(shí)候才會(huì)自己創(chuàng)建一個(gè)vue.config.js

再然后因?yàn)関ue-cli3內(nèi)部高度集成了webpack,一般來(lái)說(shuō)使用者不需要再去知道weboack做了什么,所以沒(méi)有暴露webpack的配置文件,但你依然可以創(chuàng)建vue.config.js 去修改默認(rèn)的webpack

*一開(kāi)始只有兩個(gè)選項(xiàng): default (默認(rèn)配置)和 Manually select features (手動(dòng)配置)
默認(rèn)配置只有 babel 和 eslint 其他的都要自己另外再配置,所以我們選第二項(xiàng)手動(dòng)配置。

在每次選擇手動(dòng)配置之后,會(huì)詢(xún)問(wèn)你是否保存配置,也就是圖片中的 koro 選項(xiàng),這樣以后我們?cè)谶M(jìn)行創(chuàng)建項(xiàng)目的時(shí)候 只需使用原先的配置 就可以了,而不用再進(jìn)行配置。*

Vue CLI 3還附帶了一個(gè)完整的GUI
可以創(chuàng)建新項(xiàng)目,還可以管理項(xiàng)目中的插件和任務(wù),它不需要Electron,只需用vue ui啟動(dòng)它。

vue.config.js
vue-cli升級(jí)到3之后,減少了很多的配置文件,之前所有的配置文件都在vue create 搭建時(shí)preset預(yù)設(shè) 或者 后期可以通過(guò) 命令參數(shù) 、 vue.config.js 中配置,所有的配置項(xiàng)都濃縮到了vue.config.js這個(gè)文件中,所以學(xué)懂并會(huì)用vue.config.js文件很重要。

根據(jù)需要在根目錄下新建 vue.config.js自行配置,eg:(簡(jiǎn)單配置,更多配置詳情參見(jiàn)官網(wǎng):https://cli.vuejs.org/zh/config/)

module.exports = {
  baseUrl: '/',// 部署應(yīng)用時(shí)的根路徑(默認(rèn)'/'),也可用相對(duì)路徑(存在使用限制)
  outputDir: 'dist',// 運(yùn)行時(shí)生成的生產(chǎn)環(huán)境構(gòu)建文件的目錄(默認(rèn)''dist'',構(gòu)建之前會(huì)被清除)
  assetsDir: '',//放置生成的靜態(tài)資源(s、css、img、fonts)的(相對(duì)于 outputDir 的)目錄(默認(rèn)'')
  indexPath: 'index.html',//指定生成的 index.html 的輸出路徑(相對(duì)于 outputDir)也可以是一個(gè)絕對(duì)路徑。
  pages: {//pages 里配置的路徑和文件名在你的文檔目錄必須存在 否則啟動(dòng)服務(wù)會(huì)報(bào)錯(cuò)
   index: {//除了 entry 之外都是可選的
    entry: 'src/index/main.js',// page 的入口,每個(gè)“page”應(yīng)該有一個(gè)對(duì)應(yīng)的 JavaScript 入口文件
    template: 'public/index.html',// 模板來(lái)源
    filename: 'index.html',// 在 dist/index.html 的輸出
    title: 'Index Page',// 當(dāng)使用 title 選項(xiàng)時(shí),在 template 中使用:<title><%= htmlWebpackPlugin.options.title %></title>
    chunks: ['chunk-vendors', 'chunk-common', 'index'] // 在這個(gè)頁(yè)面中包含的塊,默認(rèn)情況下會(huì)包含,提取出來(lái)的通用 chunk 和 vendor chunk
   },
   subpage: 'src/subpage/main.js'//官方解釋?zhuān)寒?dāng)使用只有入口的字符串格式時(shí),模板會(huì)被推導(dǎo)為'public/subpage.html',若找不到就回退到'public/index.html',輸出文件名會(huì)被推導(dǎo)為'subpage.html'
  },
  lintOnSave: true,// 是否在保存的時(shí)候檢查
  productionSourceMap: true,// 生產(chǎn)環(huán)境是否生成 sourceMap 文件
  css: {
   extract: true,// 是否使用css分離插件 ExtractTextPlugin
   sourceMap: false,// 開(kāi)啟 CSS source maps
   loaderOptions: {},// css預(yù)設(shè)器配置項(xiàng)
   modules: false// 啟用 CSS modules for all css / pre-processor files.
  },
  devServer: {// 環(huán)境配置
   host: 'localhost',
   port: 8080,
   https: false,
   hotOnly: false,
   open: true, //配置自動(dòng)啟動(dòng)瀏覽器
   proxy: {// 配置多個(gè)代理(配置一個(gè) proxy: 'http://localhost:4000' )
    '/api': {
     target: '<url>',
     ws: true,
     changeOrigin: true
    },
    '/foo': {
     target: '<other_url>'
    }
   }
  },
  pluginOptions: {// 第三方插件配置
   // ...
  }
};

熱更新配置

在vue.config.js添加

chainWebpack: config => {
// 修復(fù)HMR
config.resolve.symlinks(true);
},
修改css部分熱更新還需要注釋掉  //extract: true,

css: {
//extract: true,// 是否使用css分離插件 ExtractTextPlugin
sourceMap: false,// 開(kāi)啟 CSS source maps
loaderOptions: {},// css預(yù)設(shè)器配置項(xiàng)
modules: false// 啟用 CSS modules for all css / pre-processor files.
},

css預(yù)處理器

主要為css解決瀏覽器兼容、簡(jiǎn)化CSS代碼 等問(wèn)題
這樣,熱更新配置就完成了

創(chuàng)建項(xiàng)目目錄時(shí)出現(xiàn)的問(wèn)題
vue create my-app報(bào)錯(cuò):write after end解決辦法。降低了npm的版本到@5.6.0。貌似是之前的npm版本6.1.0有點(diǎn)問(wèn)題<br/" rel="nofollow">br/>解決辦法。降低了npm的版本到@5.6.0。貌似是之前的npm版本6.1.0有點(diǎn)問(wèn)題<br/Vue CLI 3需要 nodeJs ≥ 8.9 (官方推薦 8.11.0+,你可以使用 nvm 或 nvm-windows在同一臺(tái)電腦中管理多個(gè) Node 版本)

打包出現(xiàn)的問(wèn)題
在根目錄下vue.config.js(如果沒(méi)有這個(gè)文件的話,可以直接在更目錄中添加一個(gè),配置參考)文件中進(jìn)行修改。

Vue-Router 利用了瀏覽器自身的hash 模式和 history 模式的特性來(lái)實(shí)現(xiàn)前端路由(通過(guò)調(diào)用瀏覽器提供的接口)

上述就是vue-cli@3.0使用方式和舊版本的差異的詳細(xì)內(nèi)容,詳細(xì)使用情況還需要大家自己動(dòng)手實(shí)驗(yàn)使用過(guò)才能領(lǐng)會(huì)。如果想了解更多,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。

網(wǎng)站題目:解析vue-cli@3.0使用方式和舊版本的差異-創(chuàng)新互聯(lián)
文章轉(zhuǎn)載:http://bm7419.com/article24/hsice.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、微信小程序靜態(tài)網(wǎng)站、關(guān)鍵詞優(yōu)化網(wǎng)站改版、網(wǎng)站設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

微信小程序開(kāi)發(fā)