vue-cli3.X快速創(chuàng)建項(xiàng)目的方法步驟
1.安裝
Vue CLI 的包名稱由 vue-cli 改成了 @vue/cli。 如果你已經(jīng)全局安裝了舊版本的 vue-cli (1.x 或 2.x),你需要先通過(guò)以下方式先卸載它:
npm uninstall vue-cli -g # 或 yarn global remove vue-cli
vue-cli 3.x安裝:
npm install -g @vue/cli # OR yarn global add @vue/cli
說(shuō)明:-g / global 表示全局安裝。
安裝完成后可通過(guò)以下代碼校驗(yàn)安裝是否成功:
vue --version # 或 vue -V
2.創(chuàng)建項(xiàng)目
2.1vue create xxx
vue create my-project # OR vue ui
按鍵盤上下鍵可以選擇默認(rèn)(default)還是手動(dòng)(Manually),如果選擇default,一路回車執(zhí)行下去就行了
繼續(xù)手動(dòng)一下
2.2若你之前未保存過(guò)preset,或若不使用之前保存的preset創(chuàng)建項(xiàng)目,你會(huì)被提示選取一個(gè) preset。你可以選默認(rèn)的包含了基本的 Babel + ESLint 設(shè)置的 preset,也可以選“Munually select features”即“手動(dòng)選擇特性”來(lái)選取需要的特性,如下圖所示。一般會(huì)選擇手動(dòng)選擇特性。

選擇之后會(huì)出現(xiàn)如下界面:

選擇配置,看個(gè)人項(xiàng)目需求
注意,空格鍵是選中與取消,A鍵是全選
Babel —— ES6轉(zhuǎn)換器
這個(gè)是解析我們es6的代碼的,因?yàn)閷?duì)于一些低版本的ie瀏覽器,還不能識(shí)別es6代碼,那么vue里面好多要去寫es6的代碼,這個(gè)時(shí)候我們就可以用babel這個(gè)工具將es6的代碼轉(zhuǎn)譯成瀏覽器能識(shí)別的代碼。
TypeScript —— 使用JS的超類語(yǔ)言TS
Progressive Web App Support —— PWA單頁(yè)應(yīng)用
Router —— 使用路由管理器
Vuex —— 使用 vue 狀態(tài)管理器
CSS Pre-processors —— CSS預(yù)處理
Linter / Formatter —— Eslint 安裝
Unit Testing —— 單元測(cè)試
E2E Testing —— 單元測(cè)試
可以根據(jù)自己的需求,選擇配置,小穎是這么選的:

選完之后回車
2.3是否使用路由的 history模式,選擇 yes

2.4 選擇css預(yù)處理器,請(qǐng)根據(jù)個(gè)人情況進(jìn)行選擇,這里我選擇的是 Sass/SCSS < with dart-sass>

2.5 選擇 Eslint 的使用方式,我選擇的 ESLint + Prettier

2.6 選擇語(yǔ)法檢查方式,我自己選擇保存就檢測(cè)
第一個(gè)是保存檢測(cè),第二個(gè)是fix和commit的時(shí)候檢測(cè)

2.7選擇以上的配置文件放置的位置,把babel,postcss,eslint這些配置文件放哪,這里隨便選,我選擇放在獨(dú)立文件夾

2.8 是否保存以上的 preset 配置,可在將來(lái)創(chuàng)建項(xiàng)目的時(shí)候直接引用,我選擇no
鍵入N不記錄,如果鍵入Y需要輸入保存名字

確定后,等待下載依賴模塊
3.啟動(dòng)項(xiàng)目
初始完之后,進(jìn)入到項(xiàng)目根目錄: cd my-project
啟動(dòng)項(xiàng)目:npm run serve
在瀏覽器輸入 http://localhost:8080就可以看到vue的歡迎界面
4.打包上線
vue-cli 也提供了打包的命令,在項(xiàng)目根目錄下執(zhí)行: npm run build 執(zhí)行完之后,可以看到在項(xiàng)目根目錄下多出了一個(gè) dist 目錄,該目錄下就是打包好的所有靜態(tài)資源,直接部署到靜態(tài)資源服務(wù)器就好了。
注意:
使用vue-cli3.0搭建項(xiàng)目比之前更簡(jiǎn)潔,沒(méi)有了build和config文件夾。
vue-cli3的一些服務(wù)配置都遷移到CLI Service里面了,對(duì)于一些基礎(chǔ)配置和一些擴(kuò)展配置需要在根目錄新建一個(gè)vue.config.js文件進(jìn)行配置
module.exports = {
// 選項(xiàng)...
}
基本路徑
baseUrl從 Vue CLI 3.3 起已棄用使用publicPath來(lái)替代。
在開(kāi)發(fā)環(huán)境下,如果想把開(kāi)發(fā)服務(wù)器架設(shè)在根路徑,可以使用一個(gè)條件式的值
module.exports = {
publicPath: process.env.NODE_ENV === 'production' ? '/production-sub-path/' : '/'
}
構(gòu)建輸出目錄(打包位置)
outputDir
當(dāng)運(yùn)行 vue-cli-service build 時(shí)生成的生產(chǎn)環(huán)境構(gòu)建文件的目錄
module.exports = {
outputDir: 'dist',
}
靜態(tài)資源目錄
assetsDir
放置生成的靜態(tài)資源 (js、css、img、fonts) 的目錄
module.exports = {
assetsDir: 'assets',
}
eslint代碼檢測(cè)
是否開(kāi)啟eslint保存檢測(cè),有效值:ture | false | 'error'
設(shè)置為 true 時(shí), eslint-loader 會(huì)將 lint 錯(cuò)誤輸出為編譯警告。默認(rèn)情況下,警告僅僅會(huì)被輸出到命令行,且不會(huì)使得編譯失敗
希望讓 lint 錯(cuò)誤在開(kāi)發(fā)時(shí)直接顯示在瀏覽器中,可以使用 lintOnSave: 'error' 。這會(huì)強(qiáng)制 eslint-loader 將 lint 錯(cuò)誤輸出為編譯錯(cuò)誤
webpack-dev-server 相關(guān)配置
devServer: {
open: true,//設(shè)置自動(dòng)打開(kāi)
port: 1880,//設(shè)置端口
proxy: {
//設(shè)置代理
'/axios': {
target: 'http://101.15.22.98',
changeOrigin: true,
secure: false, //如果是http接口,需要配置該參數(shù)
pathRewrite: {
'^/axios': ''
}
}
}
}
}
module.exports = {
// 部署應(yīng)用時(shí)的基本 URL
publicPath: process.env.NODE_ENV === 'production' ? '192.168.60.110:8080' : '192.168.60.110:8080',
// build時(shí)構(gòu)建文件的目錄 構(gòu)建時(shí)傳入 --no-clean 可關(guān)閉該行為
outputDir: 'dist',
// build時(shí)放置生成的靜態(tài)資源 (js、css、img、fonts) 的 (相對(duì)于 outputDir 的) 目錄
assetsDir: '',
// 指定生成的 index.html 的輸出路徑 (相對(duì)于 outputDir)。也可以是一個(gè)絕對(duì)路徑。
indexPath: 'index.html',
// 默認(rèn)在生成的靜態(tài)資源文件名中包含hash以控制緩存
filenameHashing: true,
// 構(gòu)建多頁(yè)面應(yīng)用,頁(yè)面的配置
pages: {
index: {
// page 的入口
entry: 'src/index/main.js',
// 模板來(lái)源
template: 'public/index.html',
// 在 dist/index.html 的輸出
filename: 'index.html',
// 當(dāng)使用 title 選項(xiàng)時(shí),
// template 中的 title 標(biāo)簽需要是 <title><%= htmlWebpackPlugin.options.title %></title>
title: 'Index Page',
// 在這個(gè)頁(yè)面中包含的塊,默認(rèn)情況下會(huì)包含
// 提取出來(lái)的通用 chunk 和 vendor chunk。
chunks: ['chunk-vendors', 'chunk-common', 'index']
},
// 當(dāng)使用只有入口的字符串格式時(shí),
// 模板會(huì)被推導(dǎo)為 `public/subpage.html`
// 并且如果找不到的話,就回退到 `public/index.html`。
// 輸出文件名會(huì)被推導(dǎo)為 `subpage.html`。
subpage: 'src/subpage/main.js'
},
// 是否在開(kāi)發(fā)環(huán)境下通過(guò) eslint-loader 在每次保存時(shí) lint 代碼 (在生產(chǎn)構(gòu)建時(shí)禁用 eslint-loader)
lintOnSave: process.env.NODE_ENV !== 'production',
// 是否使用包含運(yùn)行時(shí)編譯器的 Vue 構(gòu)建版本
runtimeCompiler: false,
// Babel 顯式轉(zhuǎn)譯列表
transpileDependencies: [],
// 如果你不需要生產(chǎn)環(huán)境的 source map,可以將其設(shè)置為 false 以加速生產(chǎn)環(huán)境構(gòu)建
productionSourceMap: true,
// 設(shè)置生成的 HTML 中 <link rel="stylesheet"> 和 <script> 標(biāo)簽的 crossorigin 屬性(注:僅影響構(gòu)建時(shí)注入的標(biāo)簽)
crossorigin: '',
// 在生成的 HTML 中的 <link rel="stylesheet"> 和 <script> 標(biāo)簽上啟用 Subresource Integrity (SRI)
integrity: false,
// 如果這個(gè)值是一個(gè)對(duì)象,則會(huì)通過(guò) webpack-merge 合并到最終的配置中
// 如果你需要基于環(huán)境有條件地配置行為,或者想要直接修改配置,那就換成一個(gè)函數(shù) (該函數(shù)會(huì)在環(huán)境變量被設(shè)置之后懶執(zhí)行)。該方法的第一個(gè)參數(shù)會(huì)收到已經(jīng)解析好的配置。在函數(shù)內(nèi),你可以直接修改配置,或者返回一個(gè)將會(huì)被合并的對(duì)象
configureWebpack: {},
// 對(duì)內(nèi)部的 webpack 配置(比如修改、增加Loader選項(xiàng))(鏈?zhǔn)讲僮?
chainWebpack: () =>{
},
// css的處理
css: {
// 當(dāng)為true時(shí),css文件名可省略 module 默認(rèn)為 false
modules: true,
// 是否將組件中的 CSS 提取至一個(gè)獨(dú)立的 CSS 文件中,當(dāng)作為一個(gè)庫(kù)構(gòu)建時(shí),你也可以將其設(shè)置為 false 免得用戶自己導(dǎo)入 CSS
// 默認(rèn)生產(chǎn)環(huán)境下是 true,開(kāi)發(fā)環(huán)境下是 false
extract: false,
// 是否為 CSS 開(kāi)啟 source map。設(shè)置為 true 之后可能會(huì)影響構(gòu)建的性能
sourceMap: false,
//向 CSS 相關(guān)的 loader 傳遞選項(xiàng)(支持 css-loader postcss-loader sass-loader less-loader stylus-loader)
loaderOptions: {
css: {},
less: {}
}
},
// 所有 webpack-dev-server 的選項(xiàng)都支持
devServer: {},
// 是否為 Babel 或 TypeScript 使用 thread-loader
parallel: require('os').cpus().length > 1,
// 向 PWA 插件傳遞選項(xiàng)
pwa: {},
// 可以用來(lái)傳遞任何第三方插件選項(xiàng)
pluginOptions: {}
}
目前小穎公司用的 vue.config.js配置內(nèi)容如下:
module.exports = {
devServer: {
proxy: {
'/api': {
target: 'http://xxxx',
ws: true,
changeOrigin: true,
pathRewrite: {
'^/api': ''
}
}
}
}
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- vue-cli創(chuàng)建項(xiàng)目ERROR?in?Conflict:?Multiple?assets?emit?different?content?to?the?same?filename?index.html問(wèn)題的解決辦法
- 使用vue-cli創(chuàng)建vue2項(xiàng)目的實(shí)戰(zhàn)步驟詳解
- vue-cli腳手架創(chuàng)建項(xiàng)目遇到的坑及解決
- 五分鐘教你使用vue-cli3創(chuàng)建項(xiàng)目(新手入門)
- vue-cli創(chuàng)建的項(xiàng)目中的gitHooks原理解析
- 使用vue-cli3 創(chuàng)建vue項(xiàng)目并配置VS Code 自動(dòng)代碼格式化 vue語(yǔ)法高亮問(wèn)題
- vue-cli是什么及創(chuàng)建vue-cli項(xiàng)目的方法
相關(guān)文章
vue路由傳參-如何使用encodeURI加密參數(shù)
這篇文章主要介紹了vue路由傳參-如何使用encodeURI加密參數(shù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06
Antd下拉選擇,自動(dòng)匹配功能的實(shí)現(xiàn)
這篇文章主要介紹了Antd下拉選擇,自動(dòng)匹配功能的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-10-10
Vue 報(bào)錯(cuò)TypeError: this.$set is not a function 的解決方法
這篇文章主要介紹了Vue 報(bào)錯(cuò)TypeError: this.$set is not a function 的解決方法,分享給大家,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-12-12
Flutter部件內(nèi)部狀態(tài)管理小結(jié)之實(shí)現(xiàn)Vue的v-model功能
本文是 Flutter 部件內(nèi)部狀態(tài)管理的小結(jié),從部件的基礎(chǔ)開(kāi)始,到部件的狀態(tài)管理,并且在過(guò)程中實(shí)現(xiàn)一個(gè)類似 Vue 的 v-model 的功能,感興趣的朋友跟隨小編一起看看吧2019-06-06
Vue兩種組件類型:遞歸組件和動(dòng)態(tài)組件的用法
這篇文章主要介紹了Vue兩種組件類型:遞歸組件和動(dòng)態(tài)組件的用法說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-08-08
Vue自定義指令實(shí)現(xiàn)點(diǎn)擊右鍵彈出菜單示例詳解
這篇文章主要為大家介紹了Vue自定義指令實(shí)現(xiàn)點(diǎn)擊右鍵彈出菜單示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01
Vue3 + CSS實(shí)現(xiàn)一個(gè)噴火龍動(dòng)畫效果
不知不覺(jué)中,2023年已然逝去了,龍年到了,所以本文小編使用Vue3 + CSS實(shí)現(xiàn)一個(gè)噴火龍的動(dòng)畫效果,文中有相關(guān)的代碼示例供大家參考,具有一定的參考價(jià)值,感興趣的同學(xué)可以自己動(dòng)手嘗試一下2024-02-02
利用Vue實(shí)現(xiàn)數(shù)字翻滾動(dòng)畫效果展示
這篇文章主要介紹了利用Vue實(shí)現(xiàn)數(shù)字翻滾動(dòng)畫效果,通過(guò)Vue的響應(yīng)式數(shù)據(jù)更新結(jié)合CSS3的動(dòng)畫效果,我們可以實(shí)現(xiàn)非常酷炫的數(shù)字翻滾效果,給數(shù)據(jù)可視化帶來(lái)更多動(dòng)感和吸引力,需要的朋友參考下吧2024-04-04
vue2結(jié)合element-ui實(shí)現(xiàn)TreeSelect樹(shù)選擇功能
這篇文章主要為大家詳細(xì)介紹了vue2如何結(jié)合element-ui實(shí)現(xiàn)TreeSelect樹(shù)選擇功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下2024-03-03

