js对本地文件进行加密_webpack配置,对js文件进行加密

为了增强Vue项目的安全性,防止js文件中的敏感信息泄露,可以通过创建自定义的JsEncodePlugin插件并在webpack配置中引入,替代UglifyJsPlugin。该插件能实现js文件的加密,确保在npm run build后生成的app.js不包含敏感信息。
摘要由CSDN通过智能技术生成

有的vue项目为提高安全系数,防止js文件敏感信息的泄露,会提出对dist中的js进行加密的需求。

解决方案:

1. 在build目录下新建js-encode-plugin.js文件(写一个JsEncodePlugin插件),内容如下;

// 1、js-encode-plugin.js 文件(webpack的js加密插件)const fs = require('fs');//node的文件系统模块,用于读写及操作文件const path = require('path');//node提供的一些用于处理文件路径的小工具var chalk = require('chalk')//用于向控制台输出带颜色的问题提示// 2、模块对外暴露的 js 函数function JsEncodePlugin(pluginOptions) {
      this.options = pluginOptions;}// 3、原型定义一个 apply 函数,并注入了 compiler 对象JsEncodePlugin.prototype.apply = function (compiler) {
      const _this = this;  // 4、挂载 webpack 事件钩子(这里挂载的是 after-emit 事件,在将内存中 assets 内容写到磁盘文件夹之后触发的webpack生命周期钩子)  compiler.plugin('after-emit', function (compilation, callback) {
          // ... 内部进行自定义的编译操作      // 5、操作 compilation 对象的内部数据      console.log(chalk.cyan('\n jsencode start.\n'))      var filePath = path.resolve(__dirname, _this.options.assetsPath);//设置需要加密的js文件路径,_this.options.assetsPath为插件配置中传过来的需要加密的js文件路径      filterFile(filePath);      function filterFile(fp){
            fs.readdir(fp, (err, files)=>{
    //读取该文件路径          if(err){
                console.log(chalk.yellow(              '读取js文件夹异常:\n' +              err.message + '\n'            ))            return;          }          files.forEach((filename)=>{
    //遍历该路径下所有文件            if(_this.options.jsReg.test(filename)){
    //利用正则匹配我们要加密的文件,_this.options.jsReg为插件中传过来的需要加密的js文件正则,用以筛选出我们需要加密的js文件。              var filedir = path.resolve(fp, filename);              fs.readFile(filedir, 'utf-8', (err
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值