使用Vue-cli 3.0搭建Vue项目

简介: [2018-07-31更新]: vue-cli 3.0正式版的中文文档已经出来了,详细的可以参考:https://cli.vuejs.org/zh/guide/关于Vue的其他基础知识,可以看我的文章(持续更新中):1. Vue入门(1)——简介与安装Vue CLI介绍Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统,提供:通过 @vue/cli 搭建交互式的项目脚手架。

[2018-07-31更新]: vue-cli 3.0正式版的中文文档已经出来了,详细的可以参考:https://cli.vuejs.org/zh/guide/
关于Vue的其他基础知识,可以看我的文章(持续更新中):
1. Vue入门(1)——简介与安装

Vue CLI介绍

Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统,提供:

  • 通过 @vue/cli 搭建交互式的项目脚手架。
  • 通过 @vue/cli + @vue/cli-service-global 快速开始零配置原型开发。
  • 一个运行时依赖 (@vue/cli-service),该依赖:
    • 可升级;
    • 基于 webpack 构建,并带有合理的默认配置;
    • 可以通过项目内的配置文件进行配置;
    • 可以通过插件进行扩展。
    • 一个丰富的官方插件集合,集成了前端生态中最好的工具。

Vue CLI 致力于将 Vue 生态中的工具基础标准化。它确保了各种构建工具能够基于智能的默认配置即可平稳衔接,这样你可以专注在撰写应用上,而不必花好几天去纠结配置的问题。与此同时,它也为每个工具提供了调整配置的灵活性,无需 eject

1. 环境准备

1.1. 安装Node.js (建议使用LTS版本)

1.2. nrm安装及npm registry设置

// use npm
npm i nrm -g
// use yarn
yarn global add nrm

查看可用的npm源

nrm ls
img_4f9b129de89241da7d2226a2922a4927.png
nrm查看npm源.png

切换npm源(以使用taobao为例)

// 用法: nrm use ***
nrm use taobao
// 切换之后可用 nrm ls查看是否已经切换了npm源
img_dbad1639734d190fb21301e9d0df52d7.png
nrm切换npm源.png

1.3. 安装yarn

npm i yarn -g

1.4. 安装vue-cli 3.0

npm i @vue/cli -g

2. vue-cli搭建脚本文件

以搭建一个项目名称为vue-test的Vue前端项目为例

在终端输入以下命令

vue create vue-test

根据提示进行相应的配置(以手动配置为例):

2.1. 选择Manually select features

img_12ccce120f563ad3d62dd54d2f510c11.png
vue-cli-0.png

2.2. 选择项目需要的一些特性(此处我们选择需要Babel编译、使用Vue路由、Vue状态管理器、CSS预处理器、代码检测和格式化、以及单元测试,暂时不考虑端到端测试(E2E Testing))

img_448fc640aae29e843ca74a55c8fd330f.png
vue-cli-1.png

2.3. 选择CSS预处理器语言,此处选择LESS

img_6f01598140d607a3b38c40972768ccc1.png
vue-cli-2.png

2.4. 选择ESLint的代码规范,此处使用 Standard代码规范

img_db004e4b96c61ac4d9ab3da4e997c436.png
vue-cli-3.png

2.5. 选择何时进行代码检测,此处选择在保存时进行检测

img_83b300bc7888897dc3539879a685f5c1.png
vue-cli-4.png

2.6. 选择单元测试解决方案,此处选择 Jest

img_fb6e5f875caa8a16151b9a477a3720a5.png
vue-cli-5.png

2.7. 选择 Babel、PostCSS、ESLint等配置文件存放位置,此处选择单独保存在各自的配置文件中

img_3caf7478510f340c0176e08314701a61.png
vue-cli-6.png

2.8. 配置完成后等待Vue-cli完成初始化

img_0a33b5f3d690ce56f3e9a395572e02f6.png
vue-cli-7.png

2.9. vue-cli初始化完成后,根据提示,进入到vue-test项目中,并启动项目

// 进入到vue-test项目
cd vue-test
// - 启动服务
yarn serve
// - 打包编译
yarn build
// - 执行lint
yarn lint
// - 执行单元测试
yarn test:unit

3. vue.config.js配置

3.1 vue.config.js介绍

此部分内容参考Vue-cli配置参考

vue.config.js是一个可选的配置文件,如果项目的(和package.json同级的)根目录中存在这个文件,那么它会被@vue/cli自动加载。你也可以使用package.json中的vue字段,但是注意这种写法需要你严格遵照JSON的格式来写。

这个文件应该导出了一个包含了选项的对象

// vue.config.js
module.exports = {
  // 选项...
}

3.2. 配置代理

如果你的前端应用和后端 API 服务器没有运行在同一个主机上,你需要在开发环境下将 API 请求代理到 API 服务器。这个问题可以通过 vue.config.js 中的 devServer.proxy 选项来配置

devServer

  • Type: Object
    所有webpack-dev-server的选项都支持.注意:
    • 有些值像hostporthttps可能会被命令行参数覆写
    • 有些像publicPathhistoryApiFallback不应该被修改,因为它们需要和开发服务器的baseUrl同步以保障正常工作

devServer.proxy

  • Type: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:

img_ffd6497bd73c73d001feaf571f9c2d32.png
image.png

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/': '/'
        }
      }
    }
  }
}

3.3. 配置Webpack其他选项

参考:webpack简单的配置方式

调整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 中的值会被用在配置里的多个地方,以确保所有的部分都能正常工作在一起。

4. 升级已有项目到vue-cli 3.0版本

之前有考虑过通过将现有项目进行修改,安装@vue/cli以及相关的包,发现行不通。其实,最简单的方法,就是使用vue-cli 3.0,创建一个新的项目,然后将原有的项目的源码拷到新的项目中即可

  1. 使用vue-cli创建新的项目
  2. 删除新项目中src下的内容
  3. 将原有项目src中的源码拷贝到新项目的src
  4. 将原有项目的index.htmlfavicon.ico拷贝到新项目的public
  5. 将原有的*static文件夹也拷贝到新项目的public
  6. 修改package.json、.babelrc等文件,保持和原有项目一致即可
build之后静态目录存放位置区别:
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下的

img_b0485cd1a5e9179605efea36e2ba1122.png
image.png

vue-cli 3.0创建的项目,放在public目录的,编译时才会被拷贝到dist目录中,具体的配置方法,可以通过vue.config.js去配置,有兴趣的可以去研究研究
如下图:src中的**.vue等文件,编译后生成的 img/css/js文件夹,都会被拷贝到dist/assets中,public中的文件/文件夹会被拷贝到dist目录下。为了不修改原有项目的代码,直接将原项目的static文件夹拷贝到新项目的public下即可。

img_065a8896b8f80c53bb52ce946540f5b3.png
image.png

目录
相关文章
|
1天前
|
设计模式 JavaScript 前端开发
Vue源码学习需要哪些工具和技能
【4月更文挑战第20天】学习Vue源码需具备的工具与技能:VS Code或WebStorm作为代码编辑器,Node.js与npm管理依赖,Git操作仓库。基础包括JavaScript、ES6+语法、前端知识(HTML/CSS/浏览器原理)及Vue基础知识。进阶则需源码阅读理解能力,调试技巧,熟悉设计模式和架构思想。学习方法强调系统学习、实践与持续关注Vue最新动态。
17 8
|
1天前
|
JavaScript 前端开发 编译器
Vue 源码学习路线
【4月更文挑战第20天】探索Vue源码涉及响应式系统、虚拟DOM、模板编译等核心概念。先掌握Vue基础知识、JavaScript(ES6+)和前端工程化。从源码入口文件开始,研究响应式、虚拟DOM、模板编译、实例方法、全局API及生命周期。理解编译器和渲染器工作原理,实践编写Vue插件,参与开源项目,阅读相关文章教程,持续关注Vue最新动态。这是一个循序渐进、需要耐心和实践的过程。
7 1
|
1天前
|
JavaScript 前端开发
鼠标监视 | 拖拽方块 | Vue
鼠标监视 | 拖拽方块 | Vue
5 0
|
1天前
|
JavaScript
Vue控制是否禁用disabled属性
Vue控制是否禁用disabled属性
6 1
|
1天前
|
JavaScript 前端开发
Vue鼠标悬浮切换图片
Vue鼠标悬浮切换图片
5 0
|
1天前
|
JavaScript 前端开发 内存技术
Vue入门:构建你的第一个Vue应用程序
【4月更文挑战第22天】Vue.js 入门教程:安装 Node.js 和 npm,使用 Vue CLI (`npm install -g @vue/cli`) 创建项目,选择预设或自定义配置。在 `src/components/` 创建 `HelloWorld.vue` 组件,显示数据属性。在 `App.vue` 中引入并注册组件,启动开发服务器 (`npm run serve`) 预览。开始你的 Vue 之旅!
|
1天前
|
JavaScript 前端开发 UED
动画效果:给 Vue 应用添加过渡和动画
【4月更文挑战第22天】Vue 框架提供强大的过渡和动画功能,增强用户体验,创建流畅的用户界面。通过CSS动画、设置过渡属性和自定义过渡,开发者能实现多样化效果。同时,结合组件状态、关注性能并测试优化,确保在不同设备上运行良好,打造引人入胜的应用交互。
|
4天前
|
JavaScript
Ant design Vue 父子组件传递(代码案例--不懂的地方可以私信本博主)
Ant design Vue 父子组件传递(代码案例--不懂的地方可以私信本博主)
10 0
|
4天前
|
JavaScript 前端开发
ant design vue 配置菜单外部打开
ant design vue 配置菜单外部打开
12 0
|
4天前
|
JavaScript
ant design vue 在列表中使用插槽 例如当性别为0的时候在列表中我想显示男
ant design vue 在列表中使用插槽 例如当性别为0的时候在列表中我想显示男
7 0