当前位置: 首页 > news >正文

webpack打包时配置环境变量

webpack打包时配置环境变量

  • 一、常规环境变量配置
      • 1. 使用webpack.DefinePlugin定义全局常量
      • 2. 在Vue静态页面中使用该环境变量
  • 二、纯静态文件配置环境变量
      • 1. 使用npm或yarn安装html-webpack-plugin
      • 2. 在Webpack配置中引入并使用插件
      • 3. 使用htmlwebpackplugin.options方式配置环境变量

一、常规环境变量配置

使用webpack.DefinePlugin插件来定义全局常量

1. 使用webpack.DefinePlugin定义全局常量

在webpack配置文件中(例如 webpack.config.js)中

const webpack = require('webpack');module.exports = {// ... 其他配置项plugins: [new webpack.DefinePlugin({'process.env.YOUR_ENV_VAR': JSON.stringify('your_value')})]
};

这里,我们设置了一个环境变量YOUR_ENV_VAR,并为其赋了一个值your_value。

2. 在Vue静态页面中使用该环境变量

在a.html页面中,你可以通过以下方式访问这个变量:

<script>if (process.env.YOUR_ENV_VAR === 'your_value') {// 你的代码}
</script>

为了在a.html中使用process.env.YOUR_ENV_VAR,a.html应该被Vue和Webpack处理。如果a.html是一个纯静态页面且没有被Webpack处理,这种方式可能不起作用。在这种情况下,你可能需要在构建时动态生成或处理HTML文件。

二、纯静态文件配置环境变量

使用htmlwebpackplugin
可以使用html-webpack-plugin在构建时处理该HTML文件并注入变量

1. 使用npm或yarn安装html-webpack-plugin

npm install --save-dev html-webpack-plugin

2. 在Webpack配置中引入并使用插件

const HtmlWebpackPlugin = require('html-webpack-plugin');module.exports = {// ... 其他配置项plugins: [new HtmlWebpackPlugin({template: 'path_to_your_a.html',  // 指定你的a.html文件路径filename: 'a.html',  // 输出的HTML文件名,可以保持为a.htmlinject: false,  // 这确保了不自动注入bundle到html中templateParameters: {YOUR_ENV_VAR: 'your_value'  // 你的环境变量}})]
};

在a.html 中使用该环境变量

<script>var envVar = '<%= YOUR_ENV_VAR %>';if (envVar === 'your_value') {// 你的代码}
</script>

如果你觉得上面的书写方式太复杂,可以使用 htmlwebpackplugin.options配置。

3. 使用htmlwebpackplugin.options方式配置环境变量

const HtmlWebpackPlugin = require('html-webpack-plugin');module.exports = {// ... 其他配置项plugins: [new HtmlWebpackPlugin({template: 'path_to_your_a.html',  // 指定你的a.html文件路径filename: 'a.html',  // 输出的HTML文件名,可以保持为a.htmlinject: false,  // 这确保了不自动注入bundle到html中YOUR_ENV_VAR: 'your_value'  // 设置参数})]
};

在a.html模板中引用这个参数

<script>var envVar = '<%= htmlWebpackPlugin.options.YOUR_ENV_VAR %>';if (envVar === 'your_value') {// 你的代码}
</script>
http://www.lryc.cn/news/213416.html

相关文章:

  • 【c++|opencv】一、基础操作---3.访问图像元素
  • 机器视觉3D项目评估的基本要素及测量案例分析
  • 力扣日记10.31-【栈与队列篇】前 K 个高频元素
  • TensorFlow案例学习:简单的音频识别
  • css小程序踩坑记录
  • Android sqlite分页上传离线订单后删除
  • Flask基本教程以及Jinjia2模板引擎简介
  • Django实战项目-学习任务系统-兑换物品管理
  • jmeter和postman你选哪个做接口测试?
  • mac版本 Adobe总是弹窗提示验证问题如何解决
  • 钡铼技术ARM工控机在机器人控制领域的应用
  • HTML+CSS+JS实现计算器
  • Git工作原理和常见问题处理方案
  • C++-实现一个简单的菜单程序
  • Git更新 fork 的仓库
  • chorme安装esay scholar及chrome 无法从该网站添加应用、扩展程序和用户脚本解决方案
  • 数据库-扩展语句,约束方式
  • 精密数据工匠:探索 Netty ChannelHandler 的奥秘
  • Python四种基本结构的操作
  • Eureka:com.netflix.discovery.TimedSupervisorTask - task supervisor timed out
  • 1.spark standalone环境安装
  • 【问题解决】 avue dicUrl 动态参数加载字典数据(已解决)
  • ​学习一下,什么是预包装食品?​
  • 从零开始学习搭建量化平台笔记
  • 【whisper】在python中调用whisper提取字幕或翻译字幕到文本
  • git diff对比差异时指定或排除特定的文件和目录
  • 数据结构介绍与时间、空间复杂度
  • (c语言进阶)字符串函数、字符分类函数和字符转换函数
  • 解决MySQL大版本升级导致.Net(C#)程序连接报错问题
  • Java 将对象List转为csv文件并上传远程文件服务器实现方案