vue-cli3配置文件

一、vue.config.js文件配置

在项目根目录下自己手动新建vue.config.js文件,会被@vue/cli-service自动加载。
参考的官方文档

1、配合webpack的配置

简单配置
调整webpack配置最简单的方式就是在vue.config.js中的configureWebpack选项提供一个对象。该对象将会被webpack-merge合并如最终的webpack配置。
configureWebpack里可以配置webpack的loaderplugins

//vue.config.js
module.exports = {
  //1.简单配置
  configureWebpack : {
    plugins: [
      new MyAwesomeWebpackPlugin(),
    ]
  }

  //2.链式操作:允许对内部的webpack配置进行更细粒度的修改
  chainWebpack : config => {

  }

  //3.webpack的css的一些loader
  css : {
    module : false,
    extract : false ,
    sourceMap : false,
    loaderOptions: { //向css相关的loader传递选项,
    //支持的loader:css-loader,postcss-loader,sass-loader,less-loader,stylus-loader
    css : {
      //这里的选项会传递给 css-loader
    },
    postcss : {
     //这里的选项会传递给 postcss-loader
    }
    },
  }

  //4.所有webpack的devServer的选项都支持
  devServer : {
    proxy : {
      '/api' : {
        target : 'http://localhost:4000',
        ws : true,
        changeOrigin : true,
      }
    }
  }
}

2.完整配置文件

下方配置项的值都是默认值

//vue.config.js
module.exports = {
  //1.从vue cli3.3开始已弃用,请使用publicPath
  baseUrl : '/',

  /*
    2.1部署应用包时的基本URL。用法和webpack本身的output.publicPath一致。
但在cli的其它地方也会用到这个值,所以请不要直接修改webpack的output.publicPath。
    2.2默认情况下,Vue Cli会假设你的应用是被部署在一个域名的根路径。
如我本地的应用的路径是“D:\WORK\study\vue\vue_cli3_test\demo1”,则在这个应用中,根路径就是“D:\WORK\study\vue\vue_cli3_test\demo1”
  */
  publicPath : '/',

  //3.当运行vue-cli-service build时生成的生产环境构建环境的目录。用法和webpack的output.path一样,不要修改output.path
  outputDir :'dist',

  //4.放置打包后生成的静态资源(js、css、img、fonts)的目录,该目录相对于outputDir。
  assetsDir:' ',

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

  //6.
  filenameHashing : true,

  //7.多页应用模式下构建应用
  pages : undefined,

  //8.安装@vue/cli-plugin-eslint后生效。为true时将检查错误输出为编译警告输出到命令行,编译不会失败。
  //为"error"时,将检查错误直接显示在浏览器中。强制eslint-loader将lint错误输出为编译错误,编译会失败。
  lintOnSave : true,

  //9.
  tuntimeCompiler : false,
  //10.
  transpileDependencies : [],
  //11.如果你不需要生产环境的 source map,可以将其设置为 false 以加速生产环境构建
  productionSourceMap : true,
  //12.
  crossorigin : undefined,
  //13.
  integrity : false,
  //14.
  parallel : require('os').cpus().length > 1 ,
  //15.向PWA插件传递选项
  pwa : {}
  //16.不进行任何schema验证的对象,可以用来传递任何第三方插件选项,不是webpack的plugins
  pluginOptions : {},

  //17.和wenpack相关的配置参考最上面代码
}

1.eslint是用于检查我们写的javascript代码是否满足指定规则的静态代码检查工具,是使用nodejs写的。
2.webpack的Source Map 使用


二、环境变量与模式

参考文档

1.为什么需要自定义配置环境变量和模式?

一个项目前端开发过程中,一般会经历本地开发测试脚本开发自测测试环境预上线环境 才能正式发布。对应每个环境都可能有所差异,如 服务器地址,后台接口地址等。所以在环境切换时,就需要不同的配置参数,这时候就可以使用环境变量和模式,来方便我们管理。

2.vue-cli3总共提供了四中方式来指定环境变量:

1.在根目录添加.env文件,配置所有情况下都会用到的配置(不知道这个存在的意义,所有的都需要的也就不需要配置了吧)。
2.在根目录添加.env.local文件,配置所有情况下都会用到的配置,与.env的区别是只会在本地,该文件不会被git跟踪。
3.在根目录添加.env.[mode]文件,配置对应某个模式下的配置,比如:.env.development来配置开发环境的配置。
4.在根目录添加.env.[mode].local文件,配置对应某个模式下的配置,与.env.[mode]的区别也只是会在本地生效,该文件不会被git跟踪。

3.模式

在运行命令时为NODE_ENV赋值,去设置此时运行的应用的环境模式。每个模式都会将NODE_ENV的值设置为模式的名称——比如在 development 模式下 NODE_ENV 的值会被设置为 "development"

默认情况下Vue Cli项目有三种模式,

  • development:在vue-cli-service serve下,即开发环境使用
  • production:在vue-cli-service build 和vue-cli-service test:e2e下,即正式环境使用
  • test: 在vue-cli-service test:unit下使用

在package.json文件中:

{
  "scripts": {
    "serve": "vue-cli-service serve",  // vue-cli-service serve --mode development,不带mode参时默认是开发环境
    "build": "vue-cli-service build",  // vue-cli-service build --mode production,不带mode参时默认是生产环境
    "lint": "vue-cli-service lint",
   
    //自己新建一个模式:需要在项目根目录新建.env.stage1文件,在.env.stage1文件里声明变量
    //会在 stage1 模式下加载可能存在的 .env、.env.stage1 和 .env.stage1.local 文件然后构建出生产环境应用。
    "stage1" :"vue-cli-service serve --mode stage1"
  },
}

环境加载优先级
为一个特定模式准备的环境文件将会比一般的环境文件拥有更改的优先级。
同一个key: .env.[mode].local > .env.[mode] > .env

4.环境变量

.env文件中,只有以VUE_APP_开头的变量会被webpack.DefinePlugin静态嵌入到客户端侧的包中。环境变量必须以VUE_APP_开头

//.env文件
VUE_APP_SECRET = secret

//js文件访问
console.log(process.env.VUE_APP_SECRET)

5.示例

1.设置环境变量

.env文件:VUE_APP_NAME = commom
.env.development文件:VUE_APP_NAME = com_development
.env.production文件:VUE_APP_NAME = com_production
.env.development.local文件:VUE_APP_NAME = com_development_local


2.package.json文件

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

3.在项目main.js里输出console.log(process.env.VUE_APP_NAME)


4.运行应用

1.使用命令:npm run serve
该命令默认develpoment模式,会加载可能存在的.env,.env.development,.env.development.local文件。
输出com_development_local
2.使用命令:npm run build
该命令默认production模式,会加载可能存在的.env,.env.production,.env.production.local文件。
输出com_production
3..使用命令:npm run stage1
该命令默认production模式,会加载可能存在的.env,.env.stage1,.env.stage1.local文件。
输出common


未完待续......

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,457评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,837评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,696评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,183评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,057评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,105评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,520评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,211评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,482评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,574评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,353评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,897评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,489评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,683评论 2 335

推荐阅读更多精彩内容