使用vue-cli3新建一个项目并写好基本配置(推荐)


Posted in Javascript onApril 24, 2019

1. 使用vue-cli3新建项目: https://cli.vuejs.org/zh/guide/creating-a-project.html

注意,我这里用gitbash不好选择选项,我就用了基本的cmd(系统命令提示符):上下箭头和空格键可控制选项。

详细步骤:

(1)vue create init: 这里我选择了自定义配置

使用vue-cli3新建一个项目并写好基本配置(推荐)

(2)使用上下箭头和空格进行选择,我这里选择了这四个,之所以没用css pre-processors是因为我的项目中要用postcss-cssnext,后面会有详细配置说明

使用vue-cli3新建一个项目并写好基本配置(推荐)

(3)后面的

Use class-style component syntax? 是否使用class风格的组件语法?

Use Babel alongside TypeScript for auto-detected polyfills? 是否使用babel做转义?

Use history mode for router? 是否使用路由的history模式?

Where do you prefer placing config for Babel, PostCSS, ESLint, etc.? 把babel,postcss,eslint这些配置文件放哪?

Save this as a preset for future projects? (Y/n) 是否记录一下以便下次继续使用这套配置?

使用vue-cli3新建一个项目并写好基本配置(推荐)

使用vue-cli3新建一个项目并写好基本配置(推荐)

2. 改项目端口(个人需求): 在根目录新建vue.config.js(vue-cli3其他配置相关也写在这里)

module.exports = {
 devServer: {
  port: 8100, // 端口号
 }
}

3. 根据环境设置相关变量(比如请求地址、打包输出路径等),并打包不同环境代码

(1)在根目录新建appconf.json,保存不同环境的对应变量配置

{
 "dev": {
 "serverUrl": "http://localhost:57156/"
 },
 "build": {
 "serverUrl": "http://build.com/",
 "outputDir": "../../dist/build",      
 "productId": "111"
 },
 "alpha": {
 "serverUrl": "http://build-test.com/",
 "outputDir": "../../dist/alpha",
 "productId": "222"
 }
}

(2)src下新建common文件夹,下面新建configByEnv.js,根据环境设置对应变量值

var path = require('path')
var appconf = require('../../appconf.json')
var serverurl
var productId = ''
switch (process.env.NODE_ENV) {
 case 'production':
  serverurl = appconf.build.serverUrl
  productId = appconf.build.productId
  break
 case 'development':
  serverurl = appconf.dev.serverUrl
  break
 case 'alpha':
  serverurl = appconf.alpha.serverUrl
  productId = appconf.alpha.productId
  break
}
// 配置 build 文件输出路径, 可以使用绝对路径或相对路径
var outputDir
var reg = /^\.(\.)?\/.*/
if (reg.test(appconf.build.outputDir)) {
 if (process.env.NODE_ENV == 'alpha')
  outputDir = path.resolve(__dirname, appconf.alpha.outputDir) // 相对路径
 else
  outputDir = path.resolve(__dirname, appconf.build.outputDir) // 相对路径
} else {
 if (process.env.NODE_ENV == 'alpha')
  outputDir = appconf.alpha.outputDir
 else
  outputDir = appconf.build.outputDir // 绝对路径
}
var conf = {
 outputDir: outputDir,
 serverUrl: serverurl,
 env: process.env.NODE_ENV,
 productId: productId
}
module.exports = conf

(3) 在需要用以上变量的地方引入即可,如

.js中: var { outputDir } = require('./src/common/configByEnv.js');

.ts中:import {serverUrl} from '@/common/configByEnv.js';

注意:ts这样引入会报错,需要将tsconfig.json中添加  "allowJs": true,

-------- 上面针对某些变量根据不同环境设置了不同值,那么打包时只要更改环境,打包后则会取到不同环境对应的特定值 -----

因为项目中已经有开发环境和打包build环境,我这里只要再加一个打包alpha测试环境:

(1)package.json 中添加

{
 ···
 "scripts": {
 "serve": "vue-cli-service serve",
 "alpha": "vue-cli-service build --mode alpha",
 "build": "vue-cli-service build"
 }
 ···
}

(2)根目录新建.env.alpha,其内容为:

NODE_ENV = 'alpha'

(3)在vue.config.js设置打包输出路径

var { outputDir } = require('./src/common/configByEnv.js');
module.exports = {
 outputDir: outputDir,
 ···
}

4. 在项目中引入并配置postcss-nextcss

1.

// npm install autoprefixer --save-dev 此步不需要了,因为postcss-cssnext自带这个依赖

npm install postcss-cssnext --save-dev

npm install postcss-import --save-dev

npm install postcss-loader --save-dev

2. package.json中如果没有自动生成以下内容,则手动添加以下内容

{
 ··· 
 "postcss": {
 "plugins": {
  "postcss-cssnext": {}
 }
 },
 ··· 
}

5. 引入组件库:我这里用了elementUI,配置步骤:

第一步:进入到项目目录里

npm i element-ui -S

第二步:在main.js中引入

import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
Vue.use(ElementUI)

以上为vue-cli3初始化项目和一些基础配置,可根据个人喜好将ts和css文件与.vue分离。然后,愉快的写代码吧。。

总结

以上所述是小编给大家介绍的使用vue-cli3新建一个项目并写好基本配置 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
防止网站内容被拷贝的一些方法与优缺点好处与坏处分析
Nov 30 Javascript
JavaScript获取当前网页标题(title)的方法
Apr 03 Javascript
深入理解jQuery3.0的domManip函数
Sep 01 Javascript
jQuery实现移动端Tab选项卡效果
Mar 15 Javascript
浅谈JavaScript find 方法不支持IE的问题
Sep 28 Javascript
js 客户端打印html 并且去掉页眉、页脚的实例
Nov 03 Javascript
JS实现的简单下拉框联动功能示例
May 11 Javascript
jQuery实现的监听导航滚动置顶状态功能示例
Jul 23 jQuery
vue动态设置img的src路径实例
Sep 18 Javascript
浅谈JavaScript闭包
Apr 09 Javascript
利用js-cookie实现前端设置缓存数据定时失效
Jun 18 Javascript
vue路由切换之淡入淡出的简单实现
Oct 31 Javascript
vue-cli3使用 DllPlugin 实现预编译提升构建速度
Apr 24 #Javascript
vue改变对象或数组时的刷新机制的方法总结
Apr 24 #Javascript
详解Vue源码中一些util函数
Apr 24 #Javascript
vue-cli3 DllPlugin 提取公用库的方法
Apr 24 #Javascript
VUE 实现复制内容到剪贴板的两种方法
Apr 24 #Javascript
详解一个小实例理解js原型和继承
Apr 24 #Javascript
微信小程序实现的一键复制功能示例
Apr 24 #Javascript
You might like
PHP数据集构建JSON格式及新数组的方法
2012/11/07 PHP
php检测用户是否用手机(Mobile)访问网站的类
2014/01/09 PHP
php时间戳转换的示例
2014/03/31 PHP
PHP单例模式简单用法示例
2017/06/23 PHP
thinkphp5框架实现的自定义扩展类操作示例
2019/05/16 PHP
超级简单的图片防盗(HTML),好用
2007/04/08 Javascript
javascript 另一种图片滚动切换效果思路
2012/04/20 Javascript
JavaScript避免内存泄露及内存管理技巧
2014/09/05 Javascript
jQuery弹出框代码封装DialogHelper
2015/01/30 Javascript
详解JavaScript中Date.UTC()方法的使用
2015/06/12 Javascript
JavaScript实现自动生成网页元素功能(按钮、文本等)
2015/11/21 Javascript
jquery easyui datagrid实现增加,修改,删除方法总结
2016/05/25 Javascript
Ionic实现页面下拉刷新(ion-refresher)功能代码
2016/06/03 Javascript
jQuery EasyUI右键菜单实现关闭标签/选项卡
2016/10/10 Javascript
JavaScript用200行代码制作打飞机小游戏实例
2017/06/21 Javascript
JS使用正则表达式验证身份证号码
2017/06/23 Javascript
js实现左右两侧浮动广告
2018/07/09 Javascript
JS插件clipboard.js实现一键复制粘贴功能
2020/12/04 Javascript
elementUi vue el-radio 监听选中变化的实例代码
2019/06/28 Javascript
使用React代码动态生成栅格布局的方法
2020/05/24 Javascript
vue中的循环对象属性和属性值用法
2020/09/04 Javascript
[53:38]OG vs LGD 2018国际邀请赛淘汰赛BO3 第三场 8.26
2018/08/30 DOTA
python调用fortran模块
2016/04/08 Python
python读取excel表格生成erlang数据
2017/08/26 Python
python删除服务器文件代码示例
2018/02/09 Python
Python使用add_subplot与subplot画子图操作示例
2018/06/01 Python
spark: RDD与DataFrame之间的相互转换方法
2018/06/07 Python
Python实现在某个数组中查找一个值的算法示例
2018/06/27 Python
python2.7使用plotly绘制本地散点图和折线图
2019/04/02 Python
django 使用 PIL 压缩图片的例子
2019/08/16 Python
python多线程和多进程关系详解
2020/12/14 Python
设计师珠宝:Ylang 23
2018/05/11 全球购物
医生实习工作总结的自我评价
2013/09/27 职场文书
入团者的自我评价分享
2013/12/02 职场文书
初二政治教学反思
2014/01/12 职场文书
团支部推优材料
2014/05/21 职场文书