【gulp+jq+html】添加环境变量,并在js中使用(判断环境,更改api接口域名)+ 附gulpfile.js代码

news/2024/10/17 18:24:37/

参考博文:
gulp分离环境
gulp中如何配置环境变量
gulp环境变量配置

1、安装cross-env插件

npm install cross-env -d

2、package.json更改scripts

 "scripts": {"clean": "gulp clean","serve:test": "cross-env NODE_ENV=test gulp","serve:prod": "cross-env NODE_ENV=prod gulp","build:test": "cross-env NODE_ENV=test gulp","build:prod": "cross-env NODE_ENV=prod gulp","test": "echo \"Error: no test specified\" && exit 1"}

3、gulpfile.js中生成环境变量文件env.js

var fs = require('fs');
var env = 'test';
function set_env(type) {env = type || env;// 生成env.js文件,用于开发页面时,判断环境fs.writeFile("./src/assets/scripts/env.js", 'function ENV (){ return "' + env + '"};', function (err) {err && console.log(err);});
}
set_env(process.env.NODE_ENV)

生成的env.js内容:
在这里插入图片描述

4、在js中使用环境变量,判断api接口域名

  1. 先在html中引入env.js文件(注意!!一定要在业务js之前引用)在这里插入图片描述
  2. 然后再在业务js中使用
const _PATH = ENV() === 'test' ? 'http://xx.xx.xxx.xx' : 'https://xxxx.xxx.com'

附gulpfile.js完整代码:

const gulp = require('gulp')
const loadPlugins = require('gulp-load-plugins')
const plugins = loadPlugins()
const cssmin = require('gulp-cssmin')
const sass = require('gulp-sass')(require('sass'))
const autoprefixer = require('gulp-autoprefixer')
const del = require('del')
const htmlmin = require('gulp-htmlmin')
const uglify = require('gulp-uglify')
const gulpServer = require('gulp-webserver')
const browserSync = require('browser-sync');
const bs = browserSync.create();//创建一个开发服务器
const fileinclude = require('gulp-file-include');console.log('环境变量:' + process.env.NODE_ENV)var fs = require('fs');
var env = 'test';
function set_env(type) {env = type || env;// 生成env.js文件,用于开发页面时,判断环境fs.writeFile("./src/assets/scripts/env.js", 'function ENV (){ return "' + env + '"};', function (err) {err && console.log(err);});
}
set_env(process.env.NODE_ENV)const jsHandler = () => {return gulp.src('src/assets/scripts/*.js', { base: 'src' }).pipe(plugins.babel({ presets: ["@babel/env"] })) //preset-env.pipe(uglify()).pipe(gulp.dest('dist'))
}
const jsHandler2 = () => {return gulp.src('src/assets/scripts/other/*.js', { base: 'src' }).pipe(gulp.dest('dist'))
}const element = () => {return gulp.src('src/assets/element/**', { base: 'src' }).pipe(gulp.dest('dist'))
}const fileincludeHandler = () => {return gulp.src('src/*.html').pipe(fileinclude({prefix: '@@',//变量前缀 @@includebasepath: './src/partials',//引用文件路径indent: true//保留文件的缩进})).pipe(gulp.dest('dist'))
}const cssHandler = () => {return gulp.src('./src/**/*.css', { base: 'src' }).pipe(autoprefixer())//自动添加前缀 autoprefixer.pipe(cssmin()).pipe(gulp.dest('./dist'))
}const sassHandler = () => {return gulp.src('./src/**/*.scss', { base: 'src' }).pipe(sass())//转成css.pipe(autoprefixer())//自动添加前缀 autoprefixer.pipe(cssmin()).pipe(gulp.dest('./dist'))
}const htmlHandler = () => {return gulp.src('./src/**/*.html').pipe(htmlmin({collapseInlineTagWhitespace: true})).pipe(gulp.dest('dist'))
}const publicHandler = () => {return gulp.src('public/**', { base: 'public' }).pipe(gulp.dest('dist'))
}const imagesHandler = () => {return gulp.src('src/assets/images/**', { base: 'src' })// .pipe(plugins.imagemin()).pipe(gulp.dest('./dist'))
}const fontsHandler = () => {return gulp.src('src/assets/fonts/**', { base: 'src' })// .pipe(plugins.imagemin()).pipe(gulp.dest('./dist'))
}const clean = () => {return del(['dist', 'release'])
}const webHandler = () => {bs.init({notify: false,//唤醒浏览器后右上角落的提示open: false,//是否自动打开// port: 2000,//自定义端口, 默认3000livereload: true,files: 'dist/**',//监听哪些文件发生了变化server: {// baseDir: 'dist',//基础目录baseDir: ['dist', 'src', 'public'],//dist下找到会到src, public下寻找routes: {'/node_modules': 'node_modules'}}})gulp.watch('./src/**/*.scss', sassHandler)gulp.watch('./src/**/*.js', jsHandler)gulp.watch('./src/**/*.html', gulp.series(htmlHandler, fileincludeHandler))
}module.exports.default = gulp.series(clean,gulp.parallel(cssHandler, sassHandler, htmlHandler, jsHandler, jsHandler2, publicHandler, element, imagesHandler, fontsHandler),fileincludeHandler,webHandler,
)
module.exports.cssHandler = cssHandler
module.exports.sassHandler = sassHandler
module.exports.htmlHandler = htmlHandler
module.exports.jsHandler = jsHandler
module.exports.jsHandler2 = jsHandler2
module.exports.clean = clean
module.exports.webHandler = webHandler
module.exports.publicHandler = publicHandler
module.exports.element = element
module.exports.fileincludeHandler = fileincludeHandler

http://www.ppmy.cn/news/1341760.html

相关文章

如何在Windows部署GoLand并通过SSH远程连接Linux服务器

文章目录 1. 安装配置GoLand2. 服务器开启SSH服务3. GoLand本地服务器远程连接测试4. 安装cpolar内网穿透远程访问服务器端4.1 服务器端安装cpolar4.2 创建远程连接公网地址 5. 使用固定TCP地址远程开发 本文主要介绍使用GoLand通过SSH远程连接服务器,并结合cpolar内…

python求解中位数

首先将数组nums进行排序,然后找到中间位置的数值 如果数组长度n为奇数,则(n1)/2处对应值为中位数,如果数组下标从0开始,还需要减去1 如果数组长度n为偶数,则n/2,n/21两个位置数的平均值为中位数 假设中位数为x&#x…

《计算机网络简易速速上手小册》第7章:云计算与网络服务(2024 最新版)

文章目录 7.1 云服务模型(IaaS, PaaS, SaaS)- 你的技术魔法盒7.1.1 基础知识7.1.2 重点案例:构建和部署 Python Web 应用实现步骤具体操作步骤1:创建 Flask Web 应用步骤2:准备应用部署 7.1.3 拓展案例1:使…

2024年【道路运输企业主要负责人】考试及道路运输企业主要负责人考试题库

题库来源:安全生产模拟考试一点通公众号小程序 道路运输企业主要负责人考试参考答案及道路运输企业主要负责人考试试题解析是安全生产模拟考试一点通题库老师及道路运输企业主要负责人操作证已考过的学员汇总,相对有效帮助道路运输企业主要负责人考试题…

Keil软件某些汉字输出乱码,0xFD问题,51单片机

1. 问题 keil软件输入某些汉字的时候会输出乱码,例如:升、 数 2. 原因 keil软件会忽略0xFD。 升的GB2312编码为 0xc9fd,keil解析为0xc9数的GB2312编码为 0xcafd,keil解析为0xca 关于Keil软件中0xFD问题的说明 3. 解决方案1 …

【译】在 Mac 上加速 PyTorch 训练

写在前面 为什么突然深度介入大模型领域了 因为最近在评估大模型用于行业应用,通过 OpenCompass 排行榜了解到了很多大模型,像文心一言是自己深度试用过的,趁着这次评估,也体验或者通过其他团队的介绍了解了通义千问、清华智谱、…

UML---用例图,类图

用例图 用例图(Use Case Diagram)主要描述系统的功能需求和参与者与系统之间的交互。它是用户与系统交互的最简表示形式,展现了用户和与他相关的用例之间的关系。用例图被视为系统的蓝图,通过它,人们可以获知系统不同种…

非精线搜索步长规则Armijo规则Goldstein规则Wolfe规则

非精确线搜索步长规则 在数值优化中,线搜索是一种寻找合适步长的策略,以确保在目标函数上获得足够的下降。如最速下降法,拟牛顿法这些常用的优化算法等,其中的线搜索步骤通常使用Armijo规则、Goldstein规则或Wolfe规则等。 设无…