# @haina/npm 可复用的 npm 模块 支持 `ESM`(import) 和 `CommonJS`(require) ## Dev ### Package Structure ``` src/ ├── utils/ │ ├── common.js │ └── request.js ├── hooks/ │ ├── useXx.js │ └── useYy.js ``` ### Build & Pack ```sh # 打包各模块 npm run pack # 打包各模块和root npm run pack:all ``` 1. 生成导出文件 `index.js` 2. 创建`ESM`和`CommonJS` 版本 3. 打包 1. 打包`src`下的子文件夹 --> `hooks-0.1.10.tgz` `utils-0.1.10.tgz` … 2. `src/utils`下的模块, 分别单独打包 --> `utils-request-0.1.10.tgz` `utils-commons-0.1.10.tgz` … 3. 打包整个项目(root) --> `haina-npm-0.1.10.tgz` ### Serve #### FTP #### Github Action ## Usage ### 安装整个包 ```sh npm install http://xxxx/npm/haina-npm-0.1.0.tgz ``` ```js // import { commons, request, utils, hooks } from '@haina/npm'; // Import only common utilities import { isEmpty } from '@haina/npm/esm/utils/commons.js'; // Import only request utilities import { fetchJSON } from '@haina/npm/esm/utils/request.js'; ``` ### 安装单个模块 ```sh npm install http://xxxx/npm/utils-0.1.0.tgz npm install http://xxxx/npm/hooks-0.1.0.tgz ``` ```js import { commons, request } from '@haina/utils'; ``` ### 安装Utils的子模块 ```sh npm install http://xxxx/npm/utils-commons-0.1.0.tgz ``` ```js import { isEmpty } from '@haina/utils-commons'; ```