添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
耍酷的大象  ·  Spring WebFlux ...·  5 月前    · 
狂野的荒野  ·  C# Stopwatch详解-CSDN博客·  9 月前    · 

.env 文件是node运行时读取的配置文件

首先时 NODE_ENV ,源自nodeis, NODE_ENV 属性一般可以省略不写会有默认值,例如常用的 .env , .env.production .env.development
这三个文件,如果没有在文件里注明 NODE_ENV 属性,那就默认就是分别对应:

  • NODE_ENV=production 对应 vue-cli-service buid 命令
  • NODE ENV=development 对应 vue-cli-service serve 命令
    以上三个命名不能变动,除此之外,可以另外自定义加上.env.test文件,也就是测试环境,或者.env.beta,也就是内部测试版,等等…
  • 关于文件名: 必须以如下方式命名,不要乱起名,也无需专门手动控制加载哪个文件

  • .env 全局默认配置文件,不论什么环境都会加载合并(优先加载此文件,再加载下面两个文件,同名变量会覆盖此文件变量)
  • .env.development 开发环境下的配置文件, 仅在开发环境加载。
  • .env.production 生产环境下的配置文件(也就是正式环境),仅在生产环境加载。
  • 以上三个文件命名不能改变,除此之外,可以另外自定义文件,如 .env.idc .env.name
  • vue项目中配置.env文件, 变量命名必须以 VUE_APP_ 开头,比如 VUE_APP_URL VUE_APP_PWD
  • 获取.env中的全局变量, 比如, 我在 .env 文件中设置了变量 VUE_APP_BASE_URL = 'https://www.baidu.com' , 在项目中我想获取, 只需要使用 process.env.VUE_APP_BASE_URL , 就可以取到。
  • 配置启动命令
    在vue项目根目录下,找到 package.json 文件,其中scripts对象是配置的vue启动命令,比如 npm run dev ,配置如下:
  • "scripts": {
      "serve": "vue-cli-service serve",
      "serve-test": "vue-cli-service serve --mode test",
      "build": "vue-cli-service build",
      "test": "vue-cli-service build --mode test",
      "all": "vue-cli-service build && vue-cli-service build --mode test"
    

    每一行说明如下:

  • npm run serve, 启动项目, 并且加载.env.env.development文件
  • npm run serve-test, 启动项目, 并且加载.env.env.test文件
  • npm run build, 生产环境打包, 其中.env.env.production文件会加载
  • npm run test, 测试环境打包, 其中.env.env.test文件会加载
  • npm run all, 生产环境和测试环境同时打包, 加载不同的.env文件
  • 关于文件的加载:

    根据启动命令vue会自动加载对应的环境,vue是根据文件名进行加载的,所以上面说“不要乱起名,也无需专门控制加载哪个文件

    比如执行npm run serve命令,会先加载.env文件,然后自动加载.env.development文件,同名变量后加载文件会覆盖先加载的文件变量,不同名的直接保留

    查看、打印合并后的变量,使用process.env(全局属性,任何地方均可使用):

    console.log(process.env);
    

    webpack提供了配置模式(mode)

    通过选择 development,production 或 none 之中的一个,来设置 mode 参数,你可以启用 webpack 内置在相应环境下的优化。其默认值为 production 。

  • 选择 development 打包后,一些没有依赖的方法、变量、文件会保留。
  • 选择 production 打包后,一些没有依赖的方法、变量、文件会被移除。代码会进行压缩,比 development 的文件小。
  •