从VUE发布cli3以来,还没用cli3真正搭建过vue项目,正好公司新开项目,就开始使用cli3搭建。
注意:目前这个项目是个后台系统,计划使用vuex,vue-router,axios,element-ui。为了以后整体项目运行速度等,这些并没有使用npm安装到本地依赖,而是使用了cdn的方式引入的。
首先,Vue CLI 的包名称由 vue-cli 改成了 @vue/cli。 如果你已经全局安装了旧版本的 vue-cli (1.x 或 2.x),你需要先通过 以下命令卸载他。
npm uninstall vue-cli -g
yarn global remove vue-cli
卸载完成后,需要检查你的node版本.Vue CLI 需要 Node.js 8.9 或更高版本
node -v
node更新完成后就可以开始安装新的cli了
npm install -g @vue/cli
yarn global add @vue/cli
然后通过下面命令查看你的cli版本
vue --version
Vue CLI >= 3 和旧版使用了相同的 vue 命令,所以 Vue CLI 2 (vue-cli) 被覆盖了。如果你仍然需要使用旧版本的 vue init 功能,你可以全局安装一个桥接工具:
npm install -g @vue/cli-init
# `vue init` 的运行效果将会跟 `vue-cli@2.x` 相同
vue init webpack my-project
检查成功后,就可以创建你的第一个cli3以上版本的vue项目了
vue create my-system
接下来就是项目cli的选择了
1.你会被提示选取一个 preset。两个选项,第一个是默认配置,第二个是手动配置。这里我选了手动配置项目
2.选择自己的配置,空格是选择。选好后按回车下一步
TypeScript 支持使用 TypeScript 书写源码
Progressive Web App (PWA) Support PWA 支持。
Router 支持 vue-router 。
Vuex 支持 vuex 。
CSS Pre-processors 支持 CSS 预处理器。
Linter / Formatter 支持代码风格检查和格式化。
Unit Testing 支持单元测试。
E2E Testing 支持 E2E 测试
3.css预处理。我选的sass(node-sass)
4.检测方式,我选的ESLint+standard
5.选择语法检查方式,我自己选择保存就检测
第一个是保存检测,第二个是fix和commit的时候检测
6.配置文件存放地方,这里我选了第一个独立文件夹
第一个是独立文件夹位置,第二个是在package.json文件里
7.询问是否记录这一次的配置,以便下次使用。我选的不记录
8.回车后等待下载
9.下载好以后,cd到你的项目目录,输入下面命令运行
npm run serve
运行成功,项目跑起来以后就可以自己进去设置一些东西了
首先,先将我们上面提到的第三方类库和依赖cdn引入到项目
index.html。在body下引入
<body>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.11.1/theme-chalk/index.css">
<script src="https://cdn.bootcss.com/vue/2.6.10/vue.runtime.min.js"></script>
<script src="https://cdn.bootcss.com/vue-router/3.0.2/vue-router.min.js"></script>
<script src="https://cdn.bootcss.com/vuex/3.1.0/vuex.min.js"></script>
<!-- <script src="https://cdn.bootcss.com/qs/6.8.0/qs.min.js"></script> -->
<script src="https://cdn.bootcss.com/axios/0.18.0/axios.min.js"></script>
<script src="https://cdn.bootcss.com/element-ui/2.11.1/index.js"></script>
<div id="app"></div>
</body>
接着,在根目录下建立vue.config.js。在externals里将我们cdn引入的内容写上,注意element需要写成ELEMENT。
module.exports = {
publicPath: '/',
outputDir: 'dist', // 打包的目录
lintOnSave: true, // 在保存时校验格式
productionSourceMap: false, // 生产环境是否生成 SourceMap
devServer: {
open: true, // 启动服务后是否打开浏览器
host: '0.0.0.0',
port: 8080, // 服务端口
https: false,
hotOnly: false,
proxy: null, // 设置代理
before: app => { }
},
chainWebpack: config => {
// 压缩代码
config.optimization.minimize(true)
// 分割代码
config.optimization.splitChunks({
chunks: 'all'
})
// 用cdn方式引入
config.externals({
'vue': 'Vue',
'vuex': 'Vuex',
'vue-router': 'VueRouter',
'axios': 'axios',
'element-ui': 'ELEMENT'
})
}
}
src下建立views文件夹,并创建home.vue
<template>
<div class="home">
<p>aaaa</p>
<h1>{{ msg }}</h1>
<el-button>默认按钮</el-button>
<el-button type="primary">主要按钮</el-button>
<el-button type="success">成功按钮</el-button>
</div>
</template>
<script>
export default {
name: 'home',
data () {
return {
msg: 'home'
}
}
}
</script>
<style lang="scss">
.home{
font-size: 16px;
}
</style>
创建router文件夹,并创建index.js来编写我们的路由文件
import Router from 'vue-router'
import Home from '../views/home'
export default new Router({
routes: [
{
path: '/',
name: 'home',
component: Home
}
]
})
在main.js中要注意,要引入router,不然会报错,并在vue实例中注册
/* eslint-disable */
import App from './App.vue'
import router from './router'
Vue.config.productionTip = false
new Vue({
el: '#app',
router,
render: h => h(App)
})
保存,可以看到首页加载出来了。element组件也没问题。接下来就开始创建api,store,uitls文件夹
api去封装接口方法,store放vuex,uitls是封装的axios和项目一些接口配置。
接下来就去快速建立页面把。