# openharmony-polyfill
**Repository Path**: balddonkey/openharmony-polyfill
## Basic Information
- **Project Name**: openharmony-polyfill
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 20
- **Created**: 2023-03-02
- **Last Updated**: 2023-03-02
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# openharmony-polyfill
该项目是一个polyfill,包含NodeJs所有模块的子集以及一款webpack插件。用于 npm 仓中 nodejs build-in 基础模块的 api 适配,通过 webpack 插件形式集成到Openharmony的SDK中,避免原 npm 库在鸿蒙平台上使用时做侵入式修改。目前包括如下 [Node Apis](http://nodejs.cn/api-v16/):
| nodejs 模块 | 描述 | 备注 |
| :--------------: | :----------------------------: | :--: |
| [events] | 事件触发与监听 |
| [path] | 文件和目录的路径 |
| [buffer] | 缓冲区 |
| [stream] | 流 |
| [process] | 进程 | 目前实现了nextTick
| [querystring] | 查询字符串 |
| [util] | 工具 |
| [url] | 统一资源定位 |
# 简述
- **openharmony-node-polyfill**:包含全部核心代码,开发思想是参考 NodeJs 中的模块以及 Api 的设计,基于 openharmony 现有的能力去做封装适配
- **openharmony-webpack-plugin**:是一款 webpack 插件,主要用于openharmony-polyfill的集成。原理是利用了 webpack 打包时,加载模块失败重定向的机制,重定向到openharmony-polyfill中。
# 如何使用
- 1.找到 openharmony 的 SDK 目录
>例如:\Users\AppData\Local\OpenHarmony\Sdk\ets\1.1.1.5\build-tools\ets-loader
- 2.新建终端,在当前SDK目录运行如下命令安装
```
npm install @ohos/openharmony-webpack-plugin --save
```
- 3.在当前SDK目录下,找到webpack.config.js文件,配置openharmony-webpack-plugin插件。
```
const OpenharmonyPolyfillWebpackPlugin = require("@ohos/openharmony-webpack-plugin");
```
```
{
plugins:[
...,
new OpenharmonyPolyfillWebpackPlugin()
]
}
```
- 4.现在当你在openharmony使用某一个npm包,且这个npm包使用了 NodeJs build-in 的模块,这个包无需做任何侵入式修改即可正常使用。
## 兼容性
支持 OpenHarmony API version 8、9 版本。
## 贡献代码
使用过程中发现任何问题都可以提 [Issue](https://gitee.com/openharmony-sig/openharmony-polyfill/issues)
给我们,当然,我们也非常欢迎你给我们发 [PR](https://gitee.com/openharmony-sig/openharmony-polyfill/pulls) 。
## 开源协议
本项目基于 [Apache License 2.0](https://gitee.com/openharmony-sig/openharmony-polyfill/blob/master/LICENSE) ,请自由地享受和参与开源。