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

 更新时间:2022年11月17日 10:02:56   作者:HaanLen  
这篇文章主要介绍了vue项目根据不同环境进行设置打包命令,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

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

安装依赖cross-env

npm install --save-dev cross-env

package.json文件默认

  "scripts": {
    "dev": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "lint": "vue-cli-service lint"
  },

设置不同环境的打包命令

  "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"
  },

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

.env.prod文件

#定义NODE_ENV变量
NODE_ENV=prod

.env.test文件

#定义NODE_ENV变量
NODE_ENV=test

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",//不同的环境打包输出到不同的目录
});

实施效果

#执行命令,打包的文件直接输出到项目下的dist目录
npm run build 

#执行命令,打包的文件直接输出到项目下的test-dist目录
npm run build:test 

#执行命令,打包的文件直接输出到项目下的prod-dist目录
npm run build :prod

#启动命令,会自动在浏览器中打开端口号为9090的本地ip的页面
npm run dev

vue-cli-service

vue-cli-service serve

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

语法

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

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",

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

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

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",
});
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]

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:监听文件变化

到此这篇关于vue项目根据不同环境进行设置打包命令的文章就介绍到这了,更多相关vue不同环境打包命令内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue项目中使用axios遇到的相对路径和绝对路径问题

    vue项目中使用axios遇到的相对路径和绝对路径问题

    这篇文章主要介绍了vue项目中使用axios遇到的相对路径和绝对路径问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • vite+vue3使用@路径报错处理

    vite+vue3使用@路径报错处理

    本文主要介绍了vite+vue3使用@路径报错处理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-11-11
  • VUE2.0+ElementUI2.0表格el-table循环动态列渲染的写法详解

    VUE2.0+ElementUI2.0表格el-table循环动态列渲染的写法详解

    这篇文章主要介绍了VUE2.0+ElementUI2.0表格el-table循环动态列渲染的写法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-11-11
  • vue自定义组件实现双向绑定

    vue自定义组件实现双向绑定

    这篇文章主要为大家详细介绍了vue自定义组件实现双向绑定,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-01-01
  • vue全局自定义指令-元素拖拽的实现代码

    vue全局自定义指令-元素拖拽的实现代码

    这篇文章主要介绍了面板拖拽之vue自定义指令,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-04-04
  • 使用canvas实现一个vue弹幕组件功能

    使用canvas实现一个vue弹幕组件功能

    这篇文章主要介绍了使用canvas实现一个vue弹幕组件功能,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-11-11
  • vue项目中canvas实现截图功能

    vue项目中canvas实现截图功能

    这篇文章主要为大家详细介绍了vue项目中canvas实现截图功能,截取图片的一部分,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • Vue中computed和watch的区别小结

    Vue中computed和watch的区别小结

    watch和computed都是以Vue的依赖追踪机制为基础的,当某一个依赖型数据发生变化的时候,所有依赖这个数据的相关数据会自动发生变化,即自动调用相关的函数,来实现数据的变动,这篇文章简单介绍下Vue中computed和watch的区别异同,感兴趣的朋友一起看看吧
    2022-12-12
  • 报错[vuex] unknown action type: userLogin问题及解决

    报错[vuex] unknown action type: userLogin问

    这篇文章主要介绍了报错[vuex] unknown action type: userLogin问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • Vue中使用Echarts可视化图表宽度自适应的完美解决方案

    Vue中使用Echarts可视化图表宽度自适应的完美解决方案

    这篇文章主要介绍了Vue中使用Echarts可视化图表,宽度自适应解决方案,我的解决方案是,在放置Echarts的容器(div)外层再套一层容器(div),外层容器宽度固定设置手机屏幕宽,感兴趣的朋友跟随小编一起看看吧
    2022-09-09

最新评论