webpack配置相关打包参数

简单配置–针对打包环境配置

方法一:在package.json中的 scripts 添加一条新的 环境参数

scripts:{'build':"webpack",'build:mini':"set MINIFY=1 && webpack"// window系统'build:minimac':"export MINIFY=1 && webpack"// mac系统
}

在webpack.config.js中打印 process.env.MINIFY ,build—>undefind; build:mini—>1

方法二:使用第三方插件 cross-env
cross-env 是一个跨平台设置环境变量的第三方包,可以统一在多平台设置环境变量,兼容多平台

npm run cross-env --save-dev

scripts:{"build:mini": "cross-env MINIFY=2 webpack"
}

运行结果之后值为2
注意 二者的区别是后面的 && 的连接符 set/export 后面命令需要&& 拼接,cross-env 不需要

方法三:当webpack 配置为 导出函数时,参数 env 可以接受自定义的任何变量和内置的一些环境变量
(https://webpack.docschina.org/guides/environment-variables/)

npx webpack --env mytest=soso --env production

在webpack.config.js 导出函数外部中打印process.env.mytest—>undefind,在导出函数 env参数 env.mytest---->soso

插件配置—针对普通js获取全局变量

在说插件配置的前,需要注意一点事情:
简单配置中的这些方法 是运行在nodejs中的,在普通js 中是没有办法获取这些变量的,要想在本地js代码中使用,需要
使用 DefinePlugin 插件配置环境变量,该插件为webpack自带,使用时需要引入webpack
在代码中 打印 process.env.NODE_ENV=“production”|“development”,这是因为在 DefinePlugin已经定义了
(https://webpack.docschina.org/plugins/define-plugin/)

const webpack = require('webpack')
new webpack.DefinePlugin({// 定义...
});

例如:

new webpack.DefinePlugin({MY_TEST:JSON.stringify('mytest')
});

在不同main.js中打印 console.log(‘MY_TEST:’,MY_TEST)---->MY_TEST:mytest

注意:DefinePlugin只是针对的普通js 全局变量并不会在webpack.config.js中打印出来,如果根据不同打包环境,代码中执行不停的操作需要二者结合
在这之前先 说一下 mode模式(https://webpack.docschina.org/configuration/mode#root)
–mode development 会将 DefinePlugin 中 process.env.NODE_ENV 的值设置为 development
–mode production 会将 DefinePlugin 中 process.env.NODE_ENV 的值设置为 production
指定运行模式常用的有 两种方法

// 方法一:module.exports = {mode: 'development',
};// 方法二:在cli中
webpack --mode=development

在 webpack自带的命令中 npx webpck—>production, npx webpack serve—>development

不常用的命令 --node-env
如果你不明确的设置 mode,mode 选项的值会被 --node-env 覆盖。例如 --node-env production 时,会把 process.env.NODE_ENV 和 mode 均设置为 ‘production’

npx webpack --node-env production

在普通js 中打印 console.log(‘env:’,process.env.NODE_ENV)–>env:production

下面展示简单配置和插件配置二者结合的配置
1.新建env.js文件,新增config 文件–>config/env.js

const env = process.env.NODE_ENVfunction getUrl(env){let url='不知道'switch(env){case 'development':url="https://www.baidu.com/"breakcase 'production':url="https://www.sina.com.cn/"break}return url
}module.exports= getUrl(env)

webpack.config.js 中

const envURl =require("./config/env.js")
new webpack.DefinePlugin({MY_URL:JSON.stringify(envURl)
})

package.json中

scripts:{"start": "cross-env NODE_ENV=development webpack serve --open",
}

运行 npm run start,在普通main.js中答应console.log(‘MY_URL’,MY_URL)—>MY_URL:https://www.baidu.com/

webpack 环境变量相关推荐

  1. Webpack介绍和使用(配置环境变量,打包依赖)

    webpack介绍和使用 webpack是一个前端模块化打包工具,它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源.主要由入口,出口,loader,plugins四个 ...

  2. Node 环境变量 process.env.NODE_ENV 之webpack应用

    转载来源:https://github.com/wfzong/NODE_ENV_TEST,这里还有源码可以学习,谢谢原作者的分享! 对于process.env.NODE_ENV困惑起因为在配置webp ...

  3. webpack中文网(六)迁移到新版本、使用环境变量、构建性能

    webpack中文网(六)迁移到新版本.使用环境变量.构建性能 文章目录 webpack中文网(六)迁移到新版本.使用环境变量.构建性能 1. 迁移到新版本 `resolve.root`, `reso ...

  4. webpack vue 环境变量_webpack升级指南

    导语:前端开发的同学基本上都知道,webpack现在已经是主流的前端项目构建工具,从1版本到现在的4版本(以下简称webpack4),webpack进行了多次优化,目的是让前端构建的门槛更低,操作更简 ...

  5. vue-cli3环境变量与分环境打包

    第一步 : 了解环境变量概念 我们可以根目录中的下列文件来指定环境变量: .env # 在所有的环境中被载入 .env.local # 在所有的环境中被载入,但会被 git 忽略 .env.[mode ...

  6. vue index.html环境变量,vue-cli环境变量与模式

    vue-cli环境变量与模式 模式 环境变量 环境文件加载优先级 示例:Staging 模式 在客户端侧代码中使用环境变量 public/index.html 只在本地有效的变量 推荐阅读 你越是认真 ...

  7. 在package.json里面的script设置环境变量,区分开发及生产环境。注意mac与windows的设置方式不一样...

    在package.json里面的script设置环境变量,区分开发及生产环境. 注意mac与windows的设置方式不一样. "scripts": {"publish-m ...

  8. npm 脚本跨平台设置环境变量命令 cross-env

    问题 不同操作系统平台设置和使用环境变量的命令不同,导致npm脚本异常 解决 使用cross-env,以统一方式设置环境变量,并能在不同平台兼容运行 安装 npm install --save-dev ...

  9. 前端开发中环境变量配置

    在一些特殊的配置文件中定义环境变量 文件名称 对应环境 说明 .env.development 开发环境 当运行npm run dev 的时候会以此文件为配置文件,这个文件中可以定义针对开发环境的环境 ...

  10. Choerodon前端环境变量方案

    配置React应用程序的方法有很多,本文中将向大家展示Choerodon平台前端的新环境变量方案,该方案可以实现在运行时配置,所以不需要针对每个环境都进行构建. 需求 希望能够将React应用程序使用 ...

最新文章

  1. 深度学习(十)keras学习笔记
  2. 3.6 mkpasswd命令
  3. Oracle查找Web执行SQL
  4. 字符串相似度算法——Levenshtein Distance算法
  5. matlab工具箱使用dir2cas,MATLAB课程第八章.ppt
  6. redirect与forward跳转的区别
  7. logistics 与最大熵模型原理及python代码实现
  8. 将R Markdown文档变成互动体验
  9. ASP.NET MVC 开源驾校考试系统
  10. 单片机-节日彩灯控制器
  11. LWN: lockless编程模式——relaxed access和partial memory barrier
  12. c语言dsp编程论坛,针对Ti的DSP C语言编程
  13. php 抓取网页图片
  14. 局域网内查询嵌入式设备IP的几种方式
  15. 视频压缩大小怎么做?压缩视频用这3个工具准没错!
  16. “集五福”瓜分20亿!互联网巨头扎堆春节红包大战,暗藏啥玄机?
  17. 台灣人如何在大陸工作
  18. js版梅森旋转生成随机数
  19. centos8调整分辨率
  20. ubuntu下安装smba

热门文章

  1. 设计模式(九)——代理模式(Proxy)
  2. deadline集群渲染_Maya笔记
  3. 使用Windows Live ID登录网站
  4. 迅雷7计算机丢失xlfsio.dll,求大神帮忙,迅雷7出现的崩溃问题
  5. python---字符串详解
  6. 【Ubuntu+Caffe+CPU】Cannot use GPU in CPU-only Caffe: check mode
  7. c语言中 静态变量的默认值为,C中静态变量的默认值
  8. linux文件恢复工具下载_十大最佳Linux数据恢复工具,用于恢复已删除/损坏的文件(包括优盘,部分工具不支持FAT32等格式)
  9. 一步一步教你在Linux上搭建云服务器
  10. SFUD | 一款串行 Flash 通用驱动库