• vue项目根据不同环境进行设置打包命令


    vue项目设置不同环境打包命令

    package.json文件默认

      "scripts": {
        "dev": "vue-cli-service serve",
        "build": "vue-cli-service build",
        "lint": "vue-cli-service lint"
      },
    
    • 1
    • 2
    • 3
    • 4
    • 5

    设置不同环境的打包命令

      "scripts": {
        "dev": "vue-cli-service serve --open --port 9090",
        "build": "vue-cli-service build",
        "build:test": "vue-cli-service build --mode test",
        "build:prod": "vue-cli-service build --mode prod",
        "lint": "vue-cli-service lint"
      },
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    定义不同环境变量
    在项目下新建文件.env.prod.env.test

    .env.prod文件

    #定义NODE_ENV变量
    NODE_ENV=prod
    
    • 1
    • 2

    .env.test文件

    #定义NODE_ENV变量
    NODE_ENV=test
    
    • 1
    • 2

    vue.config.js配置

    const { defineConfig } = require("@vue/cli-service");
    const os = require("os");
    
    const { NODE_ENV } = process.env;
    
    ///获取本机ip///
    function getIPAdress() {
      const interfaces = os.networkInterfaces();
      for (let devName in interfaces) {
        let iface = interfaces[devName];
        for (let i = 0; i < iface.length; i++) {
          let alias = iface[i];
          if (
            alias.family === "IPv4" &&
            alias.address !== "127.0.0.1" &&
            !alias.internal
          ) {
            return alias.address;
          }
        }
      }
    }
    const myHost = getIPAdress();
    console.log("myHost", myHost);
    module.exports = defineConfig({
      transpileDependencies: true,
      devServer: {
        host: myHost, //配置本地host,当启动项目时自动在浏览器中打开
      },
      outputDir: NODE_ENV ? `${NODE_ENV}-dist` : "dist",//不同的环境打包输出到不同的目录
    });
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31

    实施效果

    #执行命令,打包的文件直接输出到项目下的dist目录
    npm run build 
    
    #执行命令,打包的文件直接输出到项目下的test-dist目录
    npm run build:test 
    
    #执行命令,打包的文件直接输出到项目下的prod-dist目录
    npm run build :prod
    
    #启动命令,会自动在浏览器中打开端口号为9090的本地ip的页面
    npm run dev
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    vue-cli-service

    vue-cli-service serve

    执行命令vue-cli-service serve会启动一个服务, (基于 webpack-dev-server) 并附带模块热重载 (Hot-Module-Replacement)。

    语法

    vue-cli-service serve [options] [entry]
    
    • 1

    options

    • –open: 在服务器启动时打开浏览器
    • –copy: 在服务器启动时将 URL 复制到剪切版
    • –mode: 指定环境模式 (默认值:development)
    • –host: 指定 host (默认值:0.0.0.0)
    • –post: 指定 port (默认值:8080)
    • –https: 使用 https (默认值:false)

    使用说明:

    使用–open时,默认的host是0.0.0.0,自动打开会看不到效果,因此当设置自动启动时还需要同时配置host为localhost,如果需要设置本地自己电脑的ip,需另外获取本地ip.后续再写。

     "dev": "vue-cli-service serve --open --host localhost",
    
    • 1

    运行vue项目,设置vue-cli-service serve --open自动打开浏览器,跳转到http://0.0.0.0:8081 解决办法

    "dev": "vue-cli-service serve --open --port 9090",
    
    • 1

    vue.config.js文件

    const os = require("os");
    
    const { NODE_ENV } = process.env;
    
    ///获取本机ip
    function getIPAdress() {
      const interfaces = os.networkInterfaces();
      for (let devName in interfaces) {
        let iface = interfaces[devName];
        for (let i = 0; i < iface.length; i++) {
          let alias = iface[i];
          if (
            alias.family === "IPv4" &&
            alias.address !== "127.0.0.1" &&
            !alias.internal
          ) {
            return alias.address;
          }
        }
      }
    }
    const myHost = getIPAdress();//本机ip
    
    
    module.exports = defineConfig({
      transpileDependencies: true,
      devServer: {
        host: myHost, //配置本地host,当启动项目时自动在浏览器中打开
      },
      outputDir: NODE_ENV ? `${NODE_ENV}-dist` : "dist",
    });
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31

    vue-cli-service build

    描述:
    作用简述:打包。

    vue-cli-service build 会在 dist/ 目录生成一个可用于生产环境的包。

    打包的特点

    • 压缩JS/CSS/HTML
    • 自动的 vendor chunk splitting。这样可以更好地缓存。
    • chunk manifest 会内联在 HTML 里。
    vue-cli-service build [options] [entry|pattern]
    
    • 1

    options

    • –mode:指定环境模式 (默认值:production)
    • –dest:指定输出目录 (默认值:dist)
    • –modern:使用现代模式构建应用,为现代浏览器交付原生支持的 ES2015 代码,并生成一个兼容老浏览器的包用来自动回退。
    • –target:app | lib | wc | wc-async (默认值:app).允许你将项目中的任何组件以一个库或 Web Components 组件的方式进行构建。
    • –name:库或 Web Components 模式下的名字 (默认值:package.json 中的 “name” 字段或入口文件名)
    • –no-clean:在构建项目之前不清除目标目录的内容
    • –report:生成 report.html 以帮助分析包内容
    • –report-json:生成 report.json 以帮助分析包内容。例如:包中包含的模块们的大小。
    • –watch:监听文件变化
  • 相关阅读:
    第4章 docker仓库管理
    Apache Doris系列之:安装与部署详细步骤
    MySQL8.0 show create view BUG解析
    06-Scala面向对象
    SkyWalking配置报警推送到企业微信
    Mysql数据库--修改root密码的几种方法(忘记密码&知道密码)
    ESP8266-Arduino编程实例-土壤湿度传感器驱动
    Redis 规范部署手册
    java创建对象的几种方法
    重新整理 .net core 实践篇 ———— dotnet-dump [外篇]
  • 原文地址:https://blog.csdn.net/weixin_40119412/article/details/127885709