Vue-cli安装环境配置

yarn安装

npm install -g yarn

yarn使用

安装全部的包

yarn

安装某个包

yarn add 包名

安装某个开发环境包

yarn add 包名 --dev

全局安装

yarn global add 包名

yarn global bin
通过该命令查询安装位置,然后,我们可以将该地址添加到环境变量

yarn默认安装包的位置不存在环境变量中

C:\Users\[用户名]\AppData\Local\Yarn\bin
把这个地址添加到电脑的环境变量path中,这样使用yarn全局安装的包就拥有全局命令了

使用cli并非必须安装yarn,只是安装后,下载模块的速度更快

vue-cli

安装

npm install -g @vue/cli

yarn global add @vue/cli

安装完成后会有vue命令

vue命令的使用

创建项目

vue create 项目名

如果遇到卡着不动的情况 直接`ctrl+c`重新安装

安装插件

vue add 插件名

运行项目

npm run serve

或者

yarn serve

目录结构

- 项目
  - public
  - src
    - assets 
    - components 组件都需要写在这里
    - views 路由组件需要存放在这里
    - App.vue 我们对应new Vue 对应的模板文件
    - main.js 入口文件
    - router.js 路由配置文件
  - babel.config.js
  - package.json
main.js中引入了App.vue,并且new了一个Vue,把App.vue组件作为模板替换了页面上的#app的内容

App.vue是最基本的组件,所有的组件都需要包含在App.vue(不是必须直接包含)

components中存储的都是组件文件.vue文件

项目中的.vue

vue-loader一个文件类型,webpack会把vue文件作为一个模块。

在vue中有三个结构

  • template html
  • script js
  • style css

我们可以通过 sc 直接生成结构,需要安装对应的插件Vue VS Code Extension Pack (vetur)

当我们把{}作为模块导出时,template会变成{}中的template选项

<template>
  <div>组件模板</div>
</template>

<script>
export default {

}
</script>

<style>
  div {
    width: 100px;
  }
</style>

如何创建组件

src/components中新建一个.vue文件

输入sc生成模板

在template中写模板

child.vue

<template>
  <div>子组件</div>
</template>

<script>
export default {

}
</script>

<style>

</style>

在父组件中使用
parent.vue

<template>
  <div>
    父组件
    <child></child>
  </div>
</template>
<script>
// 引入的child就是一个组件对象
import child from './child' // .vue可以省略

export default {
  components: {
    // 局部注册组件
    child
  }
}
</script> 

项目构建

最终项目完成后,我们可以去构建(build)我们的项目 npm run build

问题

  1. 接口问题
  2. 目录路径问题

接口问题

开发环境接口和生产环境接口不是同一个

// 可以通过设置axios的baseURL来解决这个问题
axios.defaults.baseURL = process.evn.NODE_ENV === 'development' ? '开发环境接口/统一后缀' : '生产环境接口/统一后缀'

// 如果配置了跨域
axios.defaults.baseURL = process.evn.NODE_ENV === 'development' ? 'http://localhost:8080/后缀' : '生产环境接口'

前后端分离,用vue-cli开发一定会存在跨域问题

// 配置vue.config.js下的devServer.proxy
module.exports = {
  devServer: {
    proxy: '需要代理的地址', // 开发环境的接口地址url
  }
}

目录路径问题

目录路径是最终build后的项目引入路径,默认是"/js/xxx.js" "/css/xxx.csss"

1. 部署的内容直接放在服务器根目录

不需要进行任何修改

2. 部署的内容放在某个文件夹下的如:demo

module.exports = {
  publicPath: '/demo' // /demo/js/xxx.js
}

3. 一劳永逸的方法

module.exports = {
  publicPath: './'
}

4. 如果配置后不想改变开发环境

module.exports = {
  publicPath: process.env.NODE_ENV === 'development' ? '/' : './'
}

打包完成后

打包完成后就可以把项目给后台进行部署,部署到同一域下 (如果后台已经进行了CORS跨域资源共享,我们只需要部署到任意web服务器下即可)

终极配置

axios.js

axios.default.baseURL = process.env.NODE_ENV === 'development' ? '测试接口' : '生产环境接口'
// 如果设置了代理跨域
axios.default.baseURL = process.env.NODE_ENV === 'development' ? '对应的统一后缀' : '生产环境接口'

vue.config.js

module.exports = {
  publicPath: process.env.NODE_ENV === 'development' ? '/' : './',
  devServer: {
    proxy: "测试环境接口url"
  }
}

目的: 为了在开发环境和生产环境中,都能一步到位

  1. api接口根目录下的www里
    localhost:3000
  2. api接口根目录下的www/demo
    localhost:3000/demo
  3. apache对应的服务器目录里
    localhost
  4. apache对应的服务器目录的demo里
    localhost/demo
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 33、JS中的本地存储 把一些信息存储在当前浏览器指定域下的某一个地方(存储到物理硬盘中)1、不能跨浏览器传输:在...
    萌妹撒阅读 2,104评论 0 2
  • ## 框架和库的区别?> 框架(framework):一套完整的软件设计架构和**解决方案**。> > 库(lib...
    Rui_bdad阅读 2,973评论 1 4
  • 确认过眼神,你还是没有准备秋招的人?时间仓促。自京东6月8号开启管培生的招聘,就意味着秋招的开始。然而你还在等着秋...
    千锋H5阅读 1,837评论 1 13
  • 一、介绍 Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统。有三个组件: CLI :@vue/c...
    yichen_china阅读 15,447评论 2 24
  • 感恩感谢我的新发型,给我带来好心情!谢谢谢谢谢谢 感恩感谢久违的太阳,我陪孩子开心的在长江边挖沙、搭隧道!感谢大自...
    晶晶有味阅读 97评论 0 0