[2018-07-31更新]: vue-cli 3.0正式版的中文文档已经出来了,详细的能够参考:https://cli.vuejs.org/zh/guide/css
Vue CLI介绍
Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统,提供:html
- 经过 @vue/cli 搭建交互式的项目脚手架。
- 经过 @vue/cli + @vue/cli-service-global 快速开始零配置原型开发。
- 一个运行时依赖 (@vue/cli-service),该依赖:
- 可升级;
- 基于 webpack 构建,并带有合理的默认配置;
- 能够经过项目内的配置文件进行配置;
- 能够经过插件进行扩展。
- 一个丰富的官方插件集合,集成了前端生态中最好的工具。
Vue CLI 致力于将 Vue 生态中的工具基础标准化。它确保了各类构建工具可以基于智能的默认配置便可平稳衔接,这样你能够专一在撰写应用上,而没必要花好几天去纠结配置的问题。与此同时,它也为每一个工具提供了调整配置的灵活性,无需 eject前端
// use npm
npm i nrm -g
// use yarn
yarn global add nrm
复制代码
查看可用的npm源vue
nrm ls
复制代码
切换npm源(以使用taobao为例)webpack
// 用法: nrm use ***
nrm use taobao
// 切换以后可用 nrm ls查看是否已经切换了npm源
复制代码
npm i yarn -g
复制代码
npm i @vue/cli -g
复制代码
以搭建一个项目名称为
vue-test
的Vue前端项目为例git
在终端输入如下命令github
vue create vue-test
复制代码
根据提示进行相应的配置(以手动配置为例):web
Manually select features
// 进入到vue-test项目
cd vue-test
// - 启动服务
yarn serve
// - 打包编译
yarn build
// - 执行lint
yarn lint
// - 执行单元测试
yarn test:unit
复制代码
此部份内容参考Vue-cli配置参考vue-cli
vue.config.js
是一个可选的配置文件,若是项目的(和package.json同级的)根目录中存在这个文件,那么它会被@vue/cli
自动加载。你也可使用package.json
中的vue
字段,可是注意这种写法须要你严格遵守JSON的格式来写。npm
这个文件应该导出了一个包含了选项的对象
// vue.config.js
module.exports = {
// 选项...
}
复制代码
若是你的前端应用和后端 API 服务器没有运行在同一个主机上,你须要在开发环境下将 API 请求代理到 API 服务器。这个问题能够经过 vue.config.js 中的 devServer.proxy 选项来配置
webpack-dev-server
的选项都支持.注意:
host
、port
和https
可能会被命令行参数覆写publicPath
和historyApiFallback
不该该被修改,由于它们须要和开发服务器的baseUrl同步以保障正常工做string | object
devServer.proxy
能够是一个指向开发环境API服务器的字符串:module.exports = {
devServer: {
proxy: 'http://localhost:4000'
}
}
复制代码
这会告诉开发服务器将任何未知请求 (没有匹配到静态文件的请求) 代理到http://localhost:4000
。
若是你想要更多的代理控制行为,也可使用一个 path: options
成对的对象。完整的选项能够查阅 http-proxy-middleware 。
vue-cli2.0
建立的项目的代理配置方式是修改config/index.js
文件中的proxyTable:
vue-cli3.0
的代理配置,直接将proxyTable中配置copy到devServer.proxy中便可:
module.exports = {
devServer: {
proxy: {
'/hrm/api': {
//target: 'http://192.168.1.209:10751/', // Dev环境
// target: 'http://192.168.1.238:10751/', // Test环境
// target: 'http://192.168.1.215:10751/', // Rls环境
target: 'http://192.168.1.218:10751/', // 正式环境
changeOrigin: true,
autoRewrite: true,
cookieDomainRewrite: true,
pathRewrite: {
'^/hrm/api/': '/'
}
}
}
}
}
复制代码
调整webpack配置最简单的方式就是在vue.config.js
中的configureWebpack
选项提供一个对象:
module.exports = {
// 其余选项...
configureWebpack: {
plugins: [
new MyAwesomeWebpackPlugin()
//......
]
}
}
复制代码
警告 有些 webpack 选项是基于 vue.config.js 中的值设置的,因此不能直接修改。例如你应该修改 vue.config.js 中的 outputDir 选项而不是修改 output.path;你应该修改 vue.config.js 中的 baseUrl 选项而不是修改 output.publicPath。这样作是由于 vue.config.js 中的值会被用在配置里的多个地方,以确保全部的部分都能正常工做在一块儿。
以前有考虑过经过将现有项目进行修改,安装@vue/cli以及相关的包,发现行不通。其实,最简单的方法,就是使用vue-cli 3.0,建立一个新的项目,而后将原有的项目的源码拷到新的项目中便可
src
下的内容src
中的源码拷贝到新项目的src
中index.html
及favicon.ico
拷贝到新项目的public
中static
文件夹**也拷贝到新项目的public
中vue-cli 2.0 | vue-cli 3.0 |
---|---|
存放在 dist/static 下 |
存放于 dist/assets 下 |
注意: 使用vue-cli 2.x版本建立的项目,放在static下的文件,
build
以后,是会拷贝到dist\static
项目下的,因此,也必需要将static文件夹移到新项目的public
文件夹中; 会有放在static目录的,大部分是一些用于下载的,或者是大的图片、库等不须要编译的 2.0脚手架默认生成的静态文件是放在dist/static
下,3.0默认升成的静态文件是放在dist/assets
下的,可是对于项目的升级来讲,影响不大
以下图,原有项目的static中的histudy
文件夹和wx.zip
文件,编译后是会被拷贝到dist/static
下的
vue-cli 3.0建立的项目,放在public目录的,编译时才会被拷贝到dist目录中,具体的配置方法,能够经过vue.config.js去配置,有兴趣的能够去研究研究 以下图:src
中的**.vue
等文件,编译后生成的 img/css/js
文件夹,都会被拷贝到dist/assets
中,public中的文件/文件夹会被拷贝到dist目录下。为了避免修改原有项目的代码,直接将原项目的static文件夹拷贝到新项目的public下便可。