# 内置 JS 库

> 了解 Proxyman Scripting 内置的 JavaScript 库（如 lodash、crypto-js、hashes），并学习如何使用 require() 导入自己的库。

## 1. 这是什么？ {#1-whats-it}

Proxyman 内置了一些实用的 JS 库，帮助你轻松完成常见任务。

> **备注:** 库文件位置：**\~/Library/Application\ Support/com.proxyman.NSProxy/addons/libs**

> **提示:** 从 macOS 版 Proxyman 6.10.0 开始，你可以使用 \`npm install\` 安装第三方库。请参阅 [use-npm-install.md](https://proxyman.com/docs/zh-cn/scripting/use-npm-install)。

## 2. 内置库 {#2-built-in-libraries}

| 名称             | 说明                                                                                                                   | 来源                                                                                 |
| ---------------- | ---------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------ |
| base64.js        | 包含基础的 Base64 编码/解码功能                                                                                        | -                                                                                    |
| atob.js          | window.atob()                                                                                                          | [https://github.com/jsdom/abab](https://github.com/jsdom/abab)                       |
| btoa.js          | window.btoa()                                                                                                          | [https://github.com/jsdom/abab](https://github.com/jsdom/abab)                       |
| hashes.js        | 包含多种哈希函数：MD5、RIPEMD-160、SHA1、SHA256、SHA512、HMAC                                                          | [https://github.com/h2non/jshashes](https://github.com/h2non/jshashes)               |
| lodash.js        | 包含多种文本转换函数                                                                                                   | [https://lodash.com](https://lodash.com)                                             |
| vkBeautify.js    | 以格式化或压缩的方式处理 XML、JSON、CSS 和 SQL 文本                                                                    | [https://github.com/kayhadrin/vkBeautify/](https://github.com/kayhadrin/vkBeautify/) |
| crypto-js.min.js | 标准安全加密算法的 JavaScript 实现，例如 DES、AES、Rabbit 等（版本 3.3.0）                                            | [https://cryptojs.gitbook.io/docs/](https://cryptojs.gitbook.io/docs/)               |
| pako.js          | zlib 的移植版本，支持 Deflate/Inflate 以及 GZip/UnGZip（版本 1.0.11）                                                  | [https://github.com/nodeca/pako](https://github.com/nodeca/pako)                     |

## 3. 如何导入自己的 JS 库？ {#3-how-to-import-my-own-js-library}

1. 你可以提供自己的 JS 库，但请使用 [Browserify](http://browserify.org) 或 [WebPack](https://webpack.js.org) 将所有依赖打包成单个 JS 文件。
2. 请确保正确导出函数。
3. 将文件放置在 **\~/Library/Application\ Support/com.proxyman.NSProxy/addons/libs/your-lib.js**
4. 使用以下代码导入该文件：

```javascript
require('@libs/your-lib.js');
```

例如：

```javascript
const Hashes = require('@libs/hashes.js');
const { cssmin } = require('@libs/vkBeautify.js');
const Lodash = require('@libs/lodash.js');
const { atob } = require('@libs/atob.js')
```

> **备注:** 你可以在 **\~/Library/Application\ Support/com.proxyman.NSProxy/addons/libs/** 中查看内置库，作为参考。

## 4. 注意事项 {#4-notes}

> **备注:** 感谢 [Ivan Mathy](https://github.com/IvanMathy) 开发了 Boop 应用，它为 Proxyman 的内置插件提供了便利。
