Vue-Cli 3.0 + vue.config.js
虽然一直没有亲手搭建过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的更多相关文章
- 如何使用@vue/cli 3.0在npm上创建,发布和使用你自己的Vue.js组件库
译者按: 你可能npm人家的包过成千上万次,但你是否有创建,发布和使用过自己的npm包? 原文: How to create, publish and use your own VueJS Compo ...
- @vue/cli 3.0 使用 svg-sprite-loader 加载本地 SVG 文件
目录 @vue/cli 3.0 使用 svg-sprite-loader 加载本地 SVG 文件 运行 使用 配置 svg-sprite-loader 调用当前环境下的颜色 props @vue/cl ...
- Vue CLI 3.0脚手架如何在本地配置mock数据
前后端分离的开发模式已经是目前前端的主流模式,至于为什么会前后端分离的开发我们就不做过多的阐述,既然是前后端分离的模式开发肯定是离不开前端的数据模拟阶段. 我们在开发的过程中,由于后台接口的没有完成或 ...
- 基于vue cli 3.0创建前端项目并安装cube-ui
前提条件: 安装node.js. 国内的开发者最好先配置淘宝镜像. 之后用cnpm来代替npm命令. 项目创建过程: 打开cmd,输入命令进入目标工作空间,以本机项目为例: cd /d d: cd D ...
- Django + Vue cli 3.0 访问静态资源问题
[问题背景] 用Vue clie 3.0的搭建得框架把我坑死了,在打包后,调用不到静态资源js,css,mp3等 [问题原因] vue cli 3.0打包后,dist目录下没有static目录,而Dj ...
- vue/cli 3.0脚手架搭建
在vue 2.9.6中,搭建vue-cli脚手架的流程是这样的: 首先 全局安装vue-cli,在cmd中输入命令: npm install --global vue-cli 安装成功: 安装完成 ...
- @vue/cli 4.0+express 前后端分离实践
之前总结过一篇vue-cli 2.x+express+json-server实现前后端分离的帖子,@vue/cli3.0及4.0搭建的项目与vue-cli2.x的项目结构有很大的不同.这里对@vue/ ...
- Configuration Reference In Vue CLI 3.0
Configuration Reference This project is sponsored by #Global CLI Config Some global configurations ...
- vue cli 4.0.5 的使用
vue cli 4.0.5 的使用 现在的 vue 脚手架已经升级到4.0的版本了,前两日vue 刚发布了3.0版本,我看了一下cli 4 和cli 3 没什么区别,既然这样,就只总结一下vue cl ...
- VUE CLI 3.0 安装及创建项目
一.安装 VUE CLI 3.0 官网: https://cli.vuejs.org/ 详细资料可以自己先把官网过一遍. 1. 安装(默认你的电脑上已安装node及npm) npm install ...
随机推荐
- 【JZOJ3362】【BZOJ3758】数数
description 神犇最近闲来无事,于是就思考哲学,研究数字之美.在神犇看来,如果一个数的各位能够被分成两个集合,而且这两个集合里的数的和相等,那么这个数就是优美的(具体原因就只有神犇才知道了) ...
- Java参数校验工具validation实践
介绍 在项目开发当中,数据校验是你必须要考虑和面对的事情,为此要写上一大串的代码进行校验,这样就会导致代码冗余和一些管理的问题. 例如下面的代码: public void push(List<L ...
- SpringData_03_Specifications动态查询
有时我们在查询某个实体的时候,给定的条件是不固定的,这时就需要动态构建相应的查询语句,在Spring Data JPA中可以通过JpaSpecificationExecutor接口查询.相比JPQL, ...
- Error:Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
ylbtech-Error:Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerF ...
- System.Text.Encoding.cs
ylbtech-System.Text.Encoding.cs 1.程序集 mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77 ...
- Spring MVC(五)--控制器通过注解@RequestParam接受参数
上一篇中提到,当前后端命名规则不一致时,需要通过注解@RequestParam接受参数,这个注解是作用在参数上.下面通过实例说明,场景如下: 在页面输入两个参数,控制器通过注解接受,并将接受到的数据渲 ...
- Python基础---序列对象
一.序列简介 数据结构是通过某种方式组织在一起的元素的集合. 容器(Container)是一种Python的数据结构,基本上是包含其他对象的任意对象.序列和映射(如字典)是两类主要的容器.集合(Set ...
- python学习笔记4.1_检测和过滤异常值
1.查看数据分布data.describe() 2.找出某列中符合筛选条件的值 3.找出符合筛选条件的行 4.用np.sign(data)*3设置绝对值的标准 data[np.abs(data)> ...
- <爬虫>用正则爬取B站首页图片
import re import requests headers = { 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) Apple ...
- drools跳转出现错误问题(400)
400 Sorry, a technical error occurred. Please contact a system administrator. 今天drools的管理平台tomcat部署完 ...