虽然一直没有亲手搭建过vue项目,但是2.0的时候就开始自学(但并没有实践项目)。然后公司最近有个人用3.0做了个项目,公司让我参与进去,我就顺便学习了一把3.0。(美滋滋)

因为电脑的环境还是之前自学时候的2.0,因此现在需要先升级到3.0。下面是具体步骤:

1. npm uninstall -g vue-cli

2. npm install -g @vue/cli

3. vue create [new-dir]    //进去后会有一些选择让你做,我选的default,然后下载用选npm

4. cd [new-dir]

4. npm run serve

至此3.0版本的项目就初始化好。可以看到目录结构真的是非常的精简。我参考同事已经做好的项目,是多了几个文件,分别是:

1.  vue.config.js

2. .env & .env.development & .env.[其他环境]

下面就讲下vue.config.js  (一个配置文件,替代了2.0的webpack.config.js)

官方说vue.config.js是一个可配的文件,如果存在(与package.json同级),会被@vue/cli-service自动加载

功能:完成关于端口号的配置,打包之后的路径配置,图片的配置等

i:chainWebpack

允许对内部webpack配置做更细粒度的修改,比如修改、增加loader(链式操作)

chainWebpack:config=>{
config.module.rule('xx').tap( () => {return {key:val,key:val}} ) //修改loader选项
config.module.rule('xx').end() //添加一个新的loader
config.plugin('xx').tap( args => { ...; return args} ) //修改插件选项
}

ii:configureWebpack

调整webpack配置(development(开发)/production(生产))

如果需要基于环境有条件的配置,或者想直接修改配置,就可以返回一个函数,参数会收到已解析好的而配置,在函数内可直接改配置

 configureWebpack: config => {
if (process.env.NODE_ENV === 'production') {
//xxxxx
}else if(process.env.NODE_ENV==='development'){
//xxxx
}
},

iii:css

css的处理

css: {
loaderOptions: { //向css相关的loader传递选项 设置后每个sass文件都会预加载这两个文件
sass: {
data: `@import "@/env/${process.env.VUE_APP_PROJECT_ENV}/css/_variables.scss";
@import "@/css/_variables.scss";`
}
}
}

 //声明变量具体的值(主题文件夹下的css文件夹)
$variable-color-theme: #ff8c05;
$variable-color-theme-deeper: #ff7505;
$variable-color-theme-disabled: #f7d5b1;

//主题色是变量(外层css文件夹)
$color-theme: $variable-color-theme;
$color-theme-deeper: $variable-color-theme-deeper;
$color-theme-disabled: $variable-color-theme-disabled;

iv: productionSourceMap:false

如果设置成false,项目在打包后是会压缩加密的,运行速度会加快,但是运行时报错是无法得知

如果设置成ftrue, 项目会加载全部源码,则会具体显示运行时的报错,运行速度会变慢,而且暴露了源码

  v: vue-loader+transformAssetUrls

vue-loader: 解析和转换.vue文件,提取出其中的逻辑代码js/css/html,再分别把他们交给对应的loader去处理

transformAssetUrls: 模板编译中,编译器将某些资源的某些属性转成可被调用(etc: img的src属性),使得这些资源可以被webpack处理

 chainWebpack: config => {
config.module
.rule('vue')
.use('vue-loader')
.loader('vue-loader')
.tap(() => {
return {
transformAssetUrls: {
video: ['src', 'poster'],
source: 'src',
img: 'src',
image: 'xlink:href'
}
}
})
}

   vi:声明新的路径变量 @env

以下@env代表的路径变量为src/env下的,如果是esim环境,就在/esim目录里,如果是wesim环境,就在/wesim目录里

用于:在不同环境下,可能同一位置上引入的组件内容不一样,用于导入这些组件的时候,声明路径

configureWebpack: config => {
Object.assign(config.resolve.alias, {'@env': path.resolve(`src/env/${process.env.VUE_APP_PROJECT_ENV}`)}) } 

 vii:filemanager-webpack-plugin

用于:在build之前及之后复制、打包、移动、删除文件以及文件夹

const FileManagerPlugin = require('filemanager-webpack-plugin')
configureWebpack: config => {
if (process.env.NODE_ENV === 'production') {
config.plugins.push(new FileManagerPlugin({
onEnd: {
archive: [
{
source: './dist',
destination: `./dist/${process.env.VUE_APP_DOMAIN}-${packageInfo.version}.tar`,
format: 'tar',
}
]
}
}))
}
},

Vue-Cli 3.0 + vue.config.js的更多相关文章

  1. 如何使用@vue/cli 3.0在npm上创建,发布和使用你自己的Vue.js组件库

    译者按: 你可能npm人家的包过成千上万次,但你是否有创建,发布和使用过自己的npm包? 原文: How to create, publish and use your own VueJS Compo ...

  2. @vue/cli 3.0 使用 svg-sprite-loader 加载本地 SVG 文件

    目录 @vue/cli 3.0 使用 svg-sprite-loader 加载本地 SVG 文件 运行 使用 配置 svg-sprite-loader 调用当前环境下的颜色 props @vue/cl ...

  3. Vue CLI 3.0脚手架如何在本地配置mock数据

    前后端分离的开发模式已经是目前前端的主流模式,至于为什么会前后端分离的开发我们就不做过多的阐述,既然是前后端分离的模式开发肯定是离不开前端的数据模拟阶段. 我们在开发的过程中,由于后台接口的没有完成或 ...

  4. 基于vue cli 3.0创建前端项目并安装cube-ui

    前提条件: 安装node.js. 国内的开发者最好先配置淘宝镜像. 之后用cnpm来代替npm命令. 项目创建过程: 打开cmd,输入命令进入目标工作空间,以本机项目为例: cd /d d: cd D ...

  5. Django + Vue cli 3.0 访问静态资源问题

    [问题背景] 用Vue clie 3.0的搭建得框架把我坑死了,在打包后,调用不到静态资源js,css,mp3等 [问题原因] vue cli 3.0打包后,dist目录下没有static目录,而Dj ...

  6. vue/cli 3.0脚手架搭建

    在vue 2.9.6中,搭建vue-cli脚手架的流程是这样的: 首先 全局安装vue-cli,在cmd中输入命令: npm install --global vue-cli  安装成功:  安装完成 ...

  7. @vue/cli 4.0+express 前后端分离实践

    之前总结过一篇vue-cli 2.x+express+json-server实现前后端分离的帖子,@vue/cli3.0及4.0搭建的项目与vue-cli2.x的项目结构有很大的不同.这里对@vue/ ...

  8. Configuration Reference In Vue CLI 3.0

    Configuration Reference This project is sponsored by  #Global CLI Config Some global configurations ...

  9. vue cli 4.0.5 的使用

    vue cli 4.0.5 的使用 现在的 vue 脚手架已经升级到4.0的版本了,前两日vue 刚发布了3.0版本,我看了一下cli 4 和cli 3 没什么区别,既然这样,就只总结一下vue cl ...

  10. VUE CLI 3.0 安装及创建项目

    一.安装 VUE CLI 3.0 官网: https://cli.vuejs.org/   详细资料可以自己先把官网过一遍. 1. 安装(默认你的电脑上已安装node及npm) npm install ...

随机推荐

  1. 时间复杂度 - Convert 计算次数 TO 时间复杂度

    我们假设计算机运行一行基础代码需要执行一次运算. int aFunc(void) { printf("Hello, World!\n"); // 需要执行 1 次 return 0 ...

  2. 【转载】TCP演进简述

    TCP演进简述 http://www.cnblogs.com/fll/ 一.互联网概述 TCP,即传输控制协议,是目前网络上使用的最多的传输协议,我们知道,整个互联网的体系结构是以IP协议提供的无连接 ...

  3. HDU - 6128

    题意略: 题解:二次剩余板子题 //#pragma GCC optimize(2) //#pragma GCC optimize(3) //#pragma GCC optimize(4) //#pra ...

  4. 第九章 Odoo 12开发之外部 API - 集成第三方系统

    Odoo 服务器端带有外部 API,可供网页客户端和其它客户端应用使用.本文中我们将学习如何在我们的客户端程序中使用 Odoo 的外部 API.为避免引入大家所不熟悉的编程语言,此处我们将使用基于 P ...

  5. pixi.js 学习

     事件(event):PIXI库在精灵和舞台上提供了事件,用于交互. stage.click = function(data){ var event = data.originalEvent } sp ...

  6. Windows Server 2008 R2 部署服务

    Windows Server 2008 R2 部署服务 部分参考: Windows Server 2008 R2 部署服务 - 马睿的技术博客 - 51CTO技术博客http://marui.blog ...

  7. R语言:表格的线图转化

    R语言:表格的线图转化 最先选取的是北京各区普通住宅成交十年(2016年及2006年)涨幅对比.这张图比较plain,主要拿来练习: 1.数据表格的基本整理及计算 2. 数据的初步分析 3.线图的基本 ...

  8. 左神算法进阶班3_1构造数组的MaxTree

    题目 一个数组的MaxTree定义: 数组必须没有重复元素 MaxTree是一棵二叉树,数组的每一个值对应一个二叉树节点 包括MaxTree树在内且在其中的每一棵子树上,值最大的节点都是树的头 给定一 ...

  9. Python学习day09 - Python进阶(3)

    figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max- ...

  10. mysql emoji存储问题

    偶然存储一条用户记录的时候,发现mysql一直报错 mysql_real_query failed:Incorrect stringvalue: '\xF0\x9F\x98\x8E T...' for ...