You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
138 lines
3.1 KiB
138 lines
3.1 KiB
|
4 months ago
|
# @antv/vendor
|
||
|
|
|
||
|
|
A centralized dependency management solution for d3 libraries, providing vendored third-party commonjs dependencies (inspired by [VictoryVendor](https://github.com/FormidableLabs/victory/tree/main/packages/victory-vendor)).
|
||
|
|
|
||
|
|
## 📦 Included Packages
|
||
|
|
|
||
|
|
We provide the following libraries:
|
||
|
|
|
||
|
|
- d3-array
|
||
|
|
- d3-color
|
||
|
|
- d3-dispatch
|
||
|
|
- d3-dsv
|
||
|
|
- d3-fetch
|
||
|
|
- d3-force
|
||
|
|
- d3-force-3d
|
||
|
|
- d3-format
|
||
|
|
- d3-geo
|
||
|
|
- d3-geo-projection
|
||
|
|
- d3-hierarchy
|
||
|
|
- d3-interpolate
|
||
|
|
- d3-path
|
||
|
|
- d3-quadtree
|
||
|
|
- d3-random
|
||
|
|
- d3-regression
|
||
|
|
- d3-scale
|
||
|
|
- d3-scale-chromatic
|
||
|
|
- d3-shape
|
||
|
|
- d3-time
|
||
|
|
- d3-timer
|
||
|
|
- d3-ease
|
||
|
|
|
||
|
|
> Note: The following packages currently lack TypeScript type definitions:
|
||
|
|
>
|
||
|
|
> - d3-regression
|
||
|
|
> - d3-geo-projection
|
||
|
|
> - d3-force-3d
|
||
|
|
|
||
|
|
## 📥 Installation
|
||
|
|
|
||
|
|
```shell
|
||
|
|
npm install @antv/vendor
|
||
|
|
# or
|
||
|
|
yarn add @antv/vendor
|
||
|
|
# or
|
||
|
|
pnpm add @antv/vendor
|
||
|
|
```
|
||
|
|
|
||
|
|
## 🔄 Usage
|
||
|
|
|
||
|
|
### ESM
|
||
|
|
|
||
|
|
```diff
|
||
|
|
- import { geoProjection } from "d3-geo-projection"
|
||
|
|
+ import { geoProjection } from "@antv/vendor/d3-geo-projection";
|
||
|
|
```
|
||
|
|
|
||
|
|
### CommonJS
|
||
|
|
|
||
|
|
```js
|
||
|
|
const { geoProjection } = require("@antv/vendor/d3-geo-projection");
|
||
|
|
```
|
||
|
|
|
||
|
|
Both ESM and CommonJS are supported. The package automatically routes to the appropriate version based on your import style.
|
||
|
|
|
||
|
|
### Version Information
|
||
|
|
|
||
|
|
Here are the specific versions for each package:
|
||
|
|
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"d3-array": "3.2.4",
|
||
|
|
"d3-color": "3.1.0",
|
||
|
|
"d3-dispatch": "3.0.1",
|
||
|
|
"d3-dsv": "3.0.1",
|
||
|
|
"d3-fetch": "3.0.1",
|
||
|
|
"d3-force": "3.0.0",
|
||
|
|
"d3-force-3d": "3.0.5",
|
||
|
|
"d3-format": "3.1.0",
|
||
|
|
"d3-geo": "3.1.1",
|
||
|
|
"d3-geo-projection": "4.0.0",
|
||
|
|
"d3-hierarchy": "3.1.2",
|
||
|
|
"d3-interpolate": "3.0.1",
|
||
|
|
"d3-path": "3.1.0",
|
||
|
|
"d3-quadtree": "3.0.1",
|
||
|
|
"d3-random": "3.0.1",
|
||
|
|
"d3-regression": "1.3.10",
|
||
|
|
"d3-scale": "4.0.2",
|
||
|
|
"d3-scale-chromatic": "3.1.0",
|
||
|
|
"d3-shape": "3.2.0",
|
||
|
|
"d3-time": "3.1.0",
|
||
|
|
"d3-timer": "3.0.1",
|
||
|
|
"d3-ease": "3.0.1"
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
## 🛠️ Development
|
||
|
|
|
||
|
|
This project recommends using [bun](https://bun.sh/) for development.
|
||
|
|
|
||
|
|
1. Install dependencies:
|
||
|
|
|
||
|
|
```shell
|
||
|
|
bun install
|
||
|
|
```
|
||
|
|
|
||
|
|
2. Link module-resolver:
|
||
|
|
|
||
|
|
```shell
|
||
|
|
cd module-resolver && bun link && cd .. && bun link module-resolver
|
||
|
|
```
|
||
|
|
|
||
|
|
3. Build the project:
|
||
|
|
|
||
|
|
```shell
|
||
|
|
bun run scripts/build.ts
|
||
|
|
```
|
||
|
|
|
||
|
|
## 📦 Contributing New Packages
|
||
|
|
|
||
|
|
If you need to add a new package to @antv/vendor, please follow these steps:
|
||
|
|
|
||
|
|
1. Fork this repository
|
||
|
|
2. Create a new branch for your package addition
|
||
|
|
3. Add the new package to `package.json` dependencies
|
||
|
|
4. Update the build configuration in `scripts/build.ts` if necessary
|
||
|
|
5. Build and test the package locally using `bun run build`
|
||
|
|
6. Update the README.md to include the new package in the "Included Packages" list and "Version Information" section
|
||
|
|
7. Create a Pull Request with:
|
||
|
|
- A clear description of why this package is needed
|
||
|
|
- Any potential impact on existing functionality
|
||
|
|
- Confirmation that the package has been tested
|
||
|
|
|
||
|
|
Note: Please ensure the package you're adding is compatible with both ESM and CommonJS module systems.
|
||
|
|
|
||
|
|
## 📄 License
|
||
|
|
|
||
|
|
This project is released under the MIT license, but the vendor'ed in libraries include other licenses (e.g. ISC) that we enumerate in our package.json:license field.
|