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

Backend - gulp压缩混淆JS(asp .net core MVC)

目录

一、首先确认是否安装 node.js

二、初始化 package.json

三、安装Gulp混淆工具

四、创建 gulpfile.js文件

五、修改所有JS的引入方式

(一)第一种方式(不分开发和生产环境,统一都用混淆JS)

(二)第二种方式(开发环境保持原始JS,方便测试)

六、执行打包

(一)第一种方式:单独打包

(二)第二种方式:自动化构建

七、注意


为了防止用户恶意篡改JS代码,可采用混淆。混淆的方式有多种,这里我会选择Gulp(配置简单,更好维护),而不是Webpack等复杂方式。
因为我的项目属于 ASP.NET Core MVC 小型项目,且只是为了混淆JS代码,所以使用Gulp即可。

一、首先确认是否安装 node.js

若没安装,则下载Node.js(.msi),安装过程一路next,若有“Automatically install the necessary tools”可勾选上。

验证是否安装成功(根目录命令行):

# 根目录下 node -v # 根目录下 npm -v

二、初始化 package.json

# 根目录命令行 npm init -y

三、安装Gulp混淆工具

# 根目录命令行 # 一步执行安装Gulp、UglifyJS、重命名文件的所需插件 npm install --save-dev gulp gulp-uglify gulp-rename # 可实现压缩成一行代码 npm install --save-dev gulp-terser

成功执行如图:

四、创建 gulpfile.js文件

根目录路径下创建文件

const gulp = require('gulp'); const terser = require('gulp-terser'); const rename = require('gulp-rename'); function build() { return gulp.src('wwwroot/js/**/*.js') // 所有JS(包括子文件夹的JS) .pipe(terser({ compress: { drop_console: true, // 删除 console.log drop_debugger: true // 删除 debugger }, format: { comments: false, // 删除注释 beautify: false, // 强制压缩成一行 indent_level: 0, // 不缩进 max_line_len: 1 // 强制一行 } })) .pipe(rename({ suffix: '.min' })) // 重命名为 .min.js .pipe(gulp.dest('wwwroot/dist')); // 输出到dist } exports.default = build;

五、修改所有JS的引入方式

因为我将wwwroot/js文件夹的所有JS文件执行混淆,所以整个项目代码所有涉及到该文件夹的JS文件的引入方式都得修改。可代码全局搜索更快。

(一)第一种方式(不分开发和生产环境,统一都用混淆JS)

<!-- 原来 --> <script src="~/js/XX/XX.js"></script> <!-- js路径改成dist,且XX.js补充成XX.min.js --> <script src="~/dist/XX/XX.min.js"></script>

(二)第二种方式(开发环境保持原始JS,方便测试)

<!-- 开发环境引用原始文件 --> <environment include="Development"> <script src="/js/paint/paint-showindex.js"></script> </environment> <!-- 生产环境引用混淆后的文件 --> <environment exclude="Development"> <script src="/dist/paint/paint-showindex.min.js"></script> </environment>

六、执行打包

(一)第一种方式:单独打包

# 根目录命令行 npx gulp

成功执行如图:

(二)第二种方式:自动化构建

打开项目.csproj

<Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> ... </PropertyGroup> <ItemGroup> ... </ItemGroup> <!-- 构建时运行 Gulp --> <Target Name="GulpBuild" AfterTargets="NpmInstall" BeforeTargets="Build"> <Exec Command="npx gulp" /> </Target> <!-- 发布时运行 Gulp --> <Target Name="GulpPublish" BeforeTargets="PrepareForPublish"> <Exec Command="npx gulp" /> </Target> </Project>

七、注意

自己遇到一个问题,若打开部署IIS后的网站页面后,执行登录时报错500 (Internal Server Error):An error occurred while processing your request.

原因分析及解决:首先报错500,那大概率是后端出现问题(涉及到对后端的请求);其次,若开发环境正常运行,但发布部署IIS后的运行时登录就报错,则检查appsettings.Production.json文件里设定的数据库IP链接是否属于生产环境的IP设定


http://www.jsqmd.com/news/1041835/

相关文章:

  • 2026沉浸式游戏DIY配置封神!酷睿Ultra 200S Plus装机指南
  • Python开发实战:从零开始构建高效Web应用
  • DeepSeek OCR 文字识别实战:学术论文PDF转Markdown的3步精准提取方案
  • 剖析CAN总线双雄:高速与低速的实战选型指南
  • 中银通支付卡闲置没用?2026正规预付卡回收指南请收好 - 可可收公众号
  • 24AA024H/24LC024H EEPROM硬件设计、驱动开发与可靠性实践
  • Python爬虫架构进阶:基于Scrapyd构建企业级分布式爬虫管理平台
  • AI论文写作工具的合规使用指南:如何让AI生成内容通过严格学术审查
  • C++好痛苦啊
  • 实测沈阳回收店!记住这几点,名表多卖几千块 - 逸程
  • 5分钟极速解锁网盘下载:开源直链工具完全指南
  • 投80份网安简历ooffer?140万缺口真相揭秘,程序员_网安小白求职收藏指南
  • 兰州瓷砖空鼓松动修复:本地口碑好的 5 家正规靠谱门店推荐 | 卫生间 / 客厅空鼓专修(2026 最新) - 金修达家庭维修
  • 南京黄金贵金属回收宝藏店铺推荐 | 闲置变现不踩坑指南 - 清奢黄金上门回收
  • 在海口出黄金别乱选,走访多家实体店,避开压价扣费陷阱 - 奢侈品回收评测
  • 口碑好的本地生活GEO公司哪家强
  • LCD/HDMI OUT调试实战(4)------MIPI时序与设备树配置精解
  • 上海伯爵/肖邦腕表回收门店横向测评,这份靠谱商家清单建议收藏备用 - 奢品小当家
  • 终极指南:Elasticvue - 5分钟掌握Elasticsearch可视化管理
  • 运维常备|一站式无广告网络检测平台 kk.yun,Ping 测速、站点测速、IP 查询实测测评
  • 2026延安本地连锁黄金回收,承接铂金回收白银银条回收业务+公安备案门店 - 信誉隆金银铂奢回收
  • Python跨境数据采集实战:解决地域限制与IP封禁问题(商用稳定方案)
  • 深入解析sklearn中PCA的实战应用:从参数调优到结果解读
  • 想快速周转资金?沈阳黄金回收上门交易完整流程详解 - 奢侈品回收评测
  • DeepSeek V4实测解析:长上下文、工具调用与中文因果推理三大突破
  • 济南收藏玉件回收商家排行,奢二网全国渠道占优势 - 讯息早知道
  • 超图在推荐系统中的高阶关系建模与应用实践
  • 2026大理本地人必选防水补漏检测维修公司靠谱服务商TOP5推荐:房屋渗漏水检测维修/卫生间/厨房/天花板/阳台/外墙渗漏水检测补漏维修-暗管漏水检测专业仪器精准定位漏水点 - 即刻修防水
  • 九大网盘直链解析:LinkSwift如何用一行代码改变你的下载体验?
  • 【GD32F427开发板试用】+ 从GPIO到USB:GD32F427V-START例程实战解析