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 函数调用的对象和方法
Jul 01 Javascript
JQuery写动态树示例代码
Jul 31 Javascript
解决jquery1.9不支持browser对象的问题
Nov 13 Javascript
jquery和js实现对div的隐藏和显示方法
Sep 26 Javascript
JavaScript实现网页截图功能
Oct 16 Javascript
jQuery Easyui学习之datagrid 动态添加、移除editor
Jan 27 Javascript
一个极为简单的requirejs实现方法
Oct 20 Javascript
bootstrap table使用入门基本用法
May 24 Javascript
鼠标拖动改变DIV等网页元素的大小的实现方法
Jul 06 Javascript
AngularJs1.x自定义指令独立作用域的函数传入参数方法
Oct 09 Javascript
解决vue 使用setTimeout,离开当前路由setTimeout未销毁的问题
Jul 21 Javascript
纯js+css实现在线时钟
Aug 18 Javascript
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若干单维数组遍历方法的比较
2011/09/20 PHP
解析PHP中常见的mongodb查询操作
2013/06/20 PHP
解析PHP跳出循环的方法以及continue、break、exit的区别介绍
2013/07/01 PHP
PHP查询快递信息的方法
2015/03/07 PHP
php生成唯一数字id的方法汇总
2015/11/18 PHP
XHProf报告字段含义的解析
2016/05/17 PHP
php自定义函数实现统计中文字符串长度的方法小结
2017/04/15 PHP
PHP命名空间与自动加载类详解
2018/09/04 PHP
php微信分享到朋友圈、QQ、朋友、微博
2019/02/18 PHP
jquery向.ashx文件post中文乱码问题的解决方法
2011/03/28 Javascript
javascript随机之洗牌算法深入分析
2014/06/07 Javascript
JS实现CheckBox复选框全选全不选功能
2015/05/06 Javascript
javascript弹出带文字信息的提示框效果
2016/07/19 Javascript
Jquery组件easyUi实现选项卡切换示例
2016/08/23 Javascript
js给table赋值的实例代码
2016/10/13 Javascript
js将字符串中的每一个单词的首字母变为大写其余均为小写
2017/01/05 Javascript
canvas轨迹回放功能实现
2017/12/20 Javascript
js中bool值的转换及“&amp;&amp;”、“||”、 “!!”详解
2017/12/21 Javascript
jQuery实现为动态添加的元素绑定事件实例分析
2018/09/07 jQuery
JS实现根据数组对象的某一属性排序操作示例
2019/01/14 Javascript
JavaScript中将值转换为字符串的五种方法总结
2019/06/06 Javascript
Python 实现购物商城,含有用户入口和商家入口的示例
2017/09/15 Python
Python网络爬虫神器PyQuery的基本使用教程
2018/02/03 Python
python3中的md5加密实例
2018/05/29 Python
python顺序的读取文件夹下名称有序的文件方法
2018/07/11 Python
Python机器学习算法库scikit-learn学习之决策树实现方法详解
2019/07/04 Python
python 怎样将dataframe中的字符串日期转化为日期的方法
2019/09/26 Python
Python接口开发实现步骤详解
2020/04/26 Python
anaconda升级sklearn版本的实现方法
2021/02/22 Python
体育纪念品、亲笔签名的体育收藏品:Steiner Sports
2020/07/31 全球购物
餐饮总经理岗位职责
2014/03/07 职场文书
推荐信格式要求
2014/05/09 职场文书
python自动化之如何利用allure生成测试报告
2021/05/02 Python
C站最全Python标准库总结,你想要的都在这里
2021/07/03 Python
Python中基础数据类型 set集合知识点总结
2021/08/02 Python
Java Spring Boot请求方式与请求映射过程分析
2022/06/25 Java/Android