• webpack5 + vue2 多环境命令配置


    目的:我想实现一套代码,实现多个命令打包出不同的代码;

    修改package.json

    {
      "name": "name",
      "version": "0.1.0",
      "private": true,
      "scripts": {
        "serve": "vue-cli-service serve",
        "serve:cp": "vue-cli-service serve --mode dev2",
        "build": "vue-cli-service build",
        "build:cp": "vue-cli-service build --mode prod2"
      },
    }

    默认情况下,vue-cli项目有三个模式:development,test, production 

    • development 模式用于 vue-cli-service serve
    • test 模式用于 vue-cli-service test:unit
    • production 模式用于 vue-cli-service build 和 vue-cli-service test:e2e

    可以通过传递--mode选项参数为命令行覆写默认的模式。

    vue-cli-service build --mode development

    当运行 vue-cli-service 命令时,所有的环境变量都从对应的环境文件中载入。如果文件内部不包含 NODE_ENV 变量,它的值将取决于模式,例如,在 production 模式下被设置为 "production",在 test 模式下被设置为 "test",默认则是 "development"

    NODE_ENV 将决定您的应用运行的模式,是开发,生产还是测试,因此也决定了创建哪种 webpack 配置。

    环境变量

    可以在项目根目录中放置以下文件来制定环境变量;

    .env                # 在所有的环境中被载入
    .env.local          # 在所有的环境中被载入,但会被 git 忽略
    .env.[mode]         # 只在指定的模式中被载入
    .env.[mode].local   # 只在指定的模式中被载入,但会被 git 忽略

    环境文件中只包含环境变量,其中  请注意,只有 NODE_ENVBASE_URL 和以 VUE_APP_ 开头的变量可以拿到。

    环境文件加载优先级

    为一个特定模式准备的环境文件 (例如 .env.production) 将会比一般的环境文件 (例如 .env) 拥有更高的优先级。

    只有以 VUE_APP_ 开头的变量会被 webpack.DefinePlugin 静态嵌入到客户端侧的包中。你可以在应用的代码中这样访问它们:

    console.log(process.env.VUE_APP_SECRET)

    除了 VUE_APP_* 变量之外,在你的应用代码中始终可用的还有两个特殊的变量:

    • NODE_ENV - 会是 "development""production" 或 "test" 中的一个。具体的值取决于应用运行的模式
    • BASE_URL - 会和 vue.config.js 中的 publicPath 选项相符,即你的应用会部署到的基础路径。

    例如:

    package.json为:

    "serve:dev": vue-cli-service serve --mode dev
    "build:cp": vue-cli-service build --mode prod

    对应的文件:

    env.dev
    
    env.prod

    就可以使用命令:

    npm run serve:dev 启动项目;

    npm run build:cp 构建项目;

  • 相关阅读:
    leetcode Maximum Product Subarray
    JAVA中的泛型类型不可以直接初始化
    android里getView,inflate,listview问题
    二元查找树转换成一个排序的双向链表
    c语言函数指针
    C++初始化小问题
    ODPS中的TaskContext类里面的write函数
    Eclipse里面新建servlet 是否需要配置web.xml
    检测鼠标是否在标签上
    继承
  • 原文地址:https://www.cnblogs.com/alaner/p/16263665.html
Copyright © 2020-2023  润新知