vue-cli3.X快速创建项目的方法步骤


Posted in Javascript onNovember 14, 2019

1.安装

Vue CLI 的包名称由 vue-cli 改成了 @vue/cli。 如果你已经全局安装了旧版本的 vue-cli (1.x 或 2.x),你需要先通过以下方式先卸载它:

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

说明:-g / global 表示全局安装。

安装完成后可通过以下代码校验安装是否成功:

vue --version
# 或
vue -V

2.创建项目

2.1vue create xxx

vue create my-project
# OR
vue ui

按键盘上下键可以选择默认(default)还是手动(Manually),如果选择default,一路回车执行下去就行了

继续手动一下

2.2若你之前未保存过preset,或若不使用之前保存的preset创建项目,你会被提示选取一个 preset。你可以选默认的包含了基本的 Babel + ESLint 设置的 preset,也可以选“Munually select features”即“手动选择特性”来选取需要的特性,如下图所示。一般会选择手动选择特性。

vue-cli3.X快速创建项目的方法步骤

选择之后会出现如下界面:

vue-cli3.X快速创建项目的方法步骤

选择配置,看个人项目需求

注意,空格键是选中与取消,A键是全选

Babel —— ES6转换器

这个是解析我们es6的代码的,因为对于一些低版本的ie浏览器,还不能识别es6代码,那么vue里面好多要去写es6的代码,这个时候我们就可以用babel这个工具将es6的代码转译成浏览器能识别的代码。

TypeScript —— 使用JS的超类语言TS

Progressive Web App Support —— PWA单页应用

Router —— 使用路由管理器

Vuex —— 使用 vue 状态管理器

CSS Pre-processors —— CSS预处理

Linter / Formatter —— Eslint 安装

Unit Testing —— 单元测试

E2E Testing —— 单元测试

可以根据自己的需求,选择配置,小颖是这么选的:

vue-cli3.X快速创建项目的方法步骤

选完之后回车

2.3是否使用路由的 history模式,选择 yes

vue-cli3.X快速创建项目的方法步骤

2.4 选择css预处理器,请根据个人情况进行选择,这里我选择的是 Sass/SCSS < with dart-sass>

vue-cli3.X快速创建项目的方法步骤

2.5 选择 Eslint 的使用方式,我选择的 ESLint + Prettier

vue-cli3.X快速创建项目的方法步骤

2.6 选择语法检查方式,我自己选择保存就检测

第一个是保存检测,第二个是fix和commit的时候检测

vue-cli3.X快速创建项目的方法步骤

2.7选择以上的配置文件放置的位置,把babel,postcss,eslint这些配置文件放哪,这里随便选,我选择放在独立文件夹

vue-cli3.X快速创建项目的方法步骤

2.8 是否保存以上的 preset 配置,可在将来创建项目的时候直接引用,我选择no

键入N不记录,如果键入Y需要输入保存名字

vue-cli3.X快速创建项目的方法步骤

确定后,等待下载依赖模块

3.启动项目

初始完之后,进入到项目根目录: cd my-project

启动项目:npm run serve

在浏览器输入 http://localhost:8080就可以看到vue的欢迎界面

4.打包上线

vue-cli 也提供了打包的命令,在项目根目录下执行: npm run build   执行完之后,可以看到在项目根目录下多出了一个 dist 目录,该目录下就是打包好的所有静态资源,直接部署到静态资源服务器就好了。

注意:

参考: vue.config.js常用配置

使用vue-cli3.0搭建项目比之前更简洁,没有了build和config文件夹。

vue-cli3的一些服务配置都迁移到CLI Service里面了,对于一些基础配置和一些扩展配置需要在根目录新建一个vue.config.js文件进行配置

module.exports = {
 // 选项...
}

基本路径

baseUrl从 Vue CLI 3.3 起已弃用使用publicPath来替代。

在开发环境下,如果想把开发服务器架设在根路径,可以使用一个条件式的值

module.exports = {
 publicPath: process.env.NODE_ENV === 'production' ? '/production-sub-path/' : '/'
}

构建输出目录(打包位置)

outputDir

当运行 vue-cli-service build 时生成的生产环境构建文件的目录

module.exports = {
 outputDir: 'dist',
}

静态资源目录

assetsDir

放置生成的静态资源 (js、css、img、fonts) 的目录

module.exports = {
 assetsDir: 'assets',
}

eslint代码检测

是否开启eslint保存检测,有效值:ture | false | 'error'

设置为 true 时, eslint-loader 会将 lint 错误输出为编译警告。默认情况下,警告仅仅会被输出到命令行,且不会使得编译失败

希望让 lint 错误在开发时直接显示在浏览器中,可以使用 lintOnSave: 'error' 。这会强制  eslint-loader 将 lint 错误输出为编译错误

webpack-dev-server 相关配置

devServer: {
  open: true,//设置自动打开
  port: 1880,//设置端口
  proxy: {
   //设置代理


'/axios': {




target: 'http://101.15.22.98',




changeOrigin: true,




secure: false, //如果是http接口,需要配置该参数




pathRewrite: {





'^/axios': ''





}




}
   }
  }
 }
module.exports = {
 // 部署应用时的基本 URL
 publicPath: process.env.NODE_ENV === 'production' ? '192.168.60.110:8080' : '192.168.60.110:8080',

 // build时构建文件的目录 构建时传入 --no-clean 可关闭该行为
 outputDir: 'dist',

 // build时放置生成的静态资源 (js、css、img、fonts) 的 (相对于 outputDir 的) 目录
 assetsDir: '',

 // 指定生成的 index.html 的输出路径 (相对于 outputDir)。也可以是一个绝对路径。
 indexPath: 'index.html',

 // 默认在生成的静态资源文件名中包含hash以控制缓存
 filenameHashing: true,

 // 构建多页面应用,页面的配置
 pages: {
  index: {
   // page 的入口
   entry: 'src/index/main.js',
   // 模板来源
   template: 'public/index.html',
   // 在 dist/index.html 的输出
   filename: 'index.html',
   // 当使用 title 选项时,
   // template 中的 title 标签需要是 <title><%= htmlWebpackPlugin.options.title %></title>
   title: 'Index Page',
   // 在这个页面中包含的块,默认情况下会包含
   // 提取出来的通用 chunk 和 vendor chunk。
   chunks: ['chunk-vendors', 'chunk-common', 'index']
  },
  // 当使用只有入口的字符串格式时,
  // 模板会被推导为 `public/subpage.html`
  // 并且如果找不到的话,就回退到 `public/index.html`。
  // 输出文件名会被推导为 `subpage.html`。
  subpage: 'src/subpage/main.js'
 },

 // 是否在开发环境下通过 eslint-loader 在每次保存时 lint 代码 (在生产构建时禁用 eslint-loader)
 lintOnSave: process.env.NODE_ENV !== 'production',

 // 是否使用包含运行时编译器的 Vue 构建版本
 runtimeCompiler: false,

 // Babel 显式转译列表
 transpileDependencies: [],

 // 如果你不需要生产环境的 source map,可以将其设置为 false 以加速生产环境构建
 productionSourceMap: true,

 // 设置生成的 HTML 中 <link rel="stylesheet"> 和 <script> 标签的 crossorigin 属性(注:仅影响构建时注入的标签)
 crossorigin: '',

 // 在生成的 HTML 中的 <link rel="stylesheet"> 和 <script> 标签上启用 Subresource Integrity (SRI)
 integrity: false,

 // 如果这个值是一个对象,则会通过 webpack-merge 合并到最终的配置中
 // 如果你需要基于环境有条件地配置行为,或者想要直接修改配置,那就换成一个函数 (该函数会在环境变量被设置之后懒执行)。该方法的第一个参数会收到已经解析好的配置。在函数内,你可以直接修改配置,或者返回一个将会被合并的对象
 configureWebpack: {},

 // 对内部的 webpack 配置(比如修改、增加Loader选项)(链式操作)
 chainWebpack: () =>{

 },

 // css的处理
 css: {
  // 当为true时,css文件名可省略 module 默认为 false
  modules: true,
  // 是否将组件中的 CSS 提取至一个独立的 CSS 文件中,当作为一个库构建时,你也可以将其设置为 false 免得用户自己导入 CSS
  // 默认生产环境下是 true,开发环境下是 false
  extract: false,
  // 是否为 CSS 开启 source map。设置为 true 之后可能会影响构建的性能
  sourceMap: false,
  //向 CSS 相关的 loader 传递选项(支持 css-loader postcss-loader sass-loader less-loader stylus-loader)
  loaderOptions: {
   css: {},
   less: {}
  }
 },

 // 所有 webpack-dev-server 的选项都支持
 devServer: {},

 // 是否为 Babel 或 TypeScript 使用 thread-loader
 parallel: require('os').cpus().length > 1,

 // 向 PWA 插件传递选项
 pwa: {},

 // 可以用来传递任何第三方插件选项
 pluginOptions: {}
}

目前小颖公司用的 vue.config.js配置内容如下:

module.exports = {
 devServer: {
 proxy: {
  '/api': {
  target: 'http://xxxx',
  ws: true,
  changeOrigin: true,
  pathRewrite: {
   '^/api': ''
  }
  }
 }
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript YUI 读码日记之 YAHOO.util.Dom - Part.4
Mar 22 Javascript
javascript比较文档位置
Apr 08 Javascript
javaScript 读取和设置文档元素的样式属性
Apr 14 Javascript
也说JavaScript中String类的replace函数
Sep 22 Javascript
按Enter键触发事件的jquery方法实现代码
Feb 17 Javascript
JQuery使用index方法获取Jquery对象数组下标的方法
May 18 Javascript
JS实现同一个网页布局滑动门和TAB选项卡实例
Sep 23 Javascript
jQuery中iframe的操作(点击按钮新增窗口)
Apr 20 Javascript
浅析jQuery 遍历函数,javascript中的each遍历
May 25 Javascript
轻松掌握JavaScript代理模式
Aug 26 Javascript
浅析Angular19 自定义表单控件
Jan 31 Javascript
JQuery Ajax跨域调用和非跨域调用问题实例分析
Apr 16 jQuery
vue.config.js常用配置详解
Nov 14 #Javascript
解决vue项目中页面调用数据 在数据加载完毕之前出现undefined问题
Nov 14 #Javascript
vue 返回上一页,页面样式错乱的解决
Nov 14 #Javascript
Node绑定全局TraceID的实现方法
Nov 14 #Javascript
vue-router结合vuex实现用户权限控制功能
Nov 14 #Javascript
vue router 传参获取不到的解决方式
Nov 13 #Javascript
Vue解析带html标签的字符串为dom的实例
Nov 13 #Javascript
You might like
PHP编实现程动态图像的创建代码
2008/09/28 PHP
详解WordPress开发中的get_post与get_posts函数使用
2016/01/04 PHP
PHP 返回13位时间戳的实现代码
2016/05/13 PHP
PHP面向对象之领域模型+数据映射器实例(分析)
2017/06/21 PHP
laravel 自定义常量的两种方案
2019/10/14 PHP
JavaScript DOM学习第八章 表单错误提示
2010/02/19 Javascript
JavaScript高级程序设计(第3版)学习笔记2 js基础语法
2012/10/11 Javascript
使用jQuery插件创建常规模态窗口登陆效果
2013/08/23 Javascript
详解jQuery选择器
2016/12/21 Javascript
javascript中的深复制详解及实例分析
2016/12/29 Javascript
webpack2.0搭建前端项目的教程详解
2017/04/05 Javascript
js实现鼠标移动到图片产生遮罩效果
2017/10/21 Javascript
JS实现的找零张数最小问题示例
2017/11/28 Javascript
简单谈谈CommonsChunkPlugin抽取公共模块
2017/12/31 Javascript
iview在vue-cli3如何按需加载的方法
2018/10/31 Javascript
JavaScript的查询机制LHS和RHS解析
2019/08/16 Javascript
[01:21]DOTA2 新英雄 森海飞霞
2020/12/18 DOTA
python3实现读取chrome浏览器cookie
2016/06/19 Python
使用pandas批量处理矢量化字符串的实例讲解
2018/07/10 Python
在matplotlib的图中设置中文标签的方法
2018/12/13 Python
python小程序基于Jupyter实现天气查询的方法
2020/03/27 Python
html5 web本地存储将取代我们的cookie
2012/12/26 HTML / CSS
英国评分最高的女性剃须刀订阅盒:FFS Beauty
2018/01/25 全球购物
日本索尼音乐商店:Sony Music Shop
2018/07/17 全球购物
HomeAway英国:全球领先的度假租赁在线市场
2020/02/03 全球购物
《都江堰》教学反思
2014/02/07 职场文书
初中三年毕业生的自我评价分享
2014/02/14 职场文书
幼教求职信
2014/03/12 职场文书
分公司负责人任命书
2014/06/04 职场文书
新学期开学标语
2014/06/30 职场文书
2014年管理工作总结
2014/11/22 职场文书
世界文化遗产导游词
2015/02/13 职场文书
汽车销售员岗位职责
2015/04/11 职场文书
2016年春季趣味运动会开幕词
2016/03/04 职场文书
了解Kubernetes中的Service和Endpoint
2022/04/01 Servers
vue3引入highlight.js进行代码高亮的方法实例
2022/04/08 Vue.js