大多数 Atlaskit 编辑器都获得了 MIT 或 Apache 2.0 许可证的许可。我试图弄清楚在不接受非自由(如自由)Atlassian 设计指南许可证(ADG 许可证)的情况下应该如何使用 Atlaskit,该许可证用于包@atlaskit/icon
,@atlaskit/icon-file-type
和 @atlaskit/icon-object
是 Atlaskit 编辑器深度嵌套依赖项的一部分。
我完全意识到我需要重新创建替代图标和主题,我对此很满意。但是,当我创建 package.json
并运行 npm install
时,当我包含以下依赖项时,我会获得上述 ADG 许可的软件包:
...
"dependencies": {
"@atlaskit/editor-core": "^120",
"@atlaskit/media-core": "^31",
"@atlaskit/smart-card": "^13",
...
我如何传递我自己的实现以供使用,例如而不是来自 npmjs.com 的 ADG 许可默认 @atlaskit/icon
?
fork 整个 Atlaskit 包树只是为了修改依赖项来覆盖这 3 个包显然是可能的,但有更好的方法吗?看来npm-force-resolutions可以做这样的事情,但据我所知,它只允许替换依赖版本号,所以我可以简单地选择例如的官方实现@atlaskit/icon
我想使用,但这不允许更改为完全不同的实现。所有版本的 @atlaskit/icon
都具有相同的许可证,我尝试这样做是因为我不喜欢 ADG 许可证,并且我愿意重新实现所需的部分。
我更喜欢可以在需要其他 atlaskit
依赖项的主级别 package.json
(或其旁边的文件中)保存一些内容。我正在使用 Node v12,以防它产生影响。我不需要支持任何较低版本,但我也希望与 v14 兼容。
更新:给定上述依赖项,npm list "@atlaskit/icon"
将发出
<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="87eafeaae6f3ebe6f4eceef3aae2e3eef3e8f5c7b7a9b7a9b6" rel="noreferrer noopener nofollow">[email protected]</a> /local/path/to/my/editor
├─┬ @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="c0a5a4a9b4afb2eda3afb2a580f1f2f0eef1eef2" rel="noreferrer noopener nofollow">[email protected]</a>
│ ├─┬ @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="1172707d747f75706351283f233f2021" rel="noreferrer noopener nofollow">[email protected]</a>
│ │ └── @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="aec7cdc1c0ee9c9e809f809c" rel="noreferrer noopener nofollow">[email protected]</a> deduped
│ ├─┬ @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="04676c61676f666b7c4435342a352a3530" rel="noreferrer noopener nofollow">[email protected]</a>
│ │ └── @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="422b212d2c0270726c736c70" rel="noreferrer noopener nofollow">[email protected]</a> deduped
│ ├─┬ @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="305451445544595d551d4059535b554270091e041e07" rel="noreferrer noopener nofollow">[email protected]</a>
│ │ ├─┬ @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="07616e626b632a6566746247363329372932" rel="noreferrer noopener nofollow">[email protected]</a>
│ │ │ └── @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="f69f959998b6c4c6d8c7d8c4" rel="noreferrer noopener nofollow">[email protected]</a> deduped
│ │ └── @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="026b616d6c4230322c332c30" rel="noreferrer noopener nofollow">[email protected]</a> deduped
│ ├─┬ @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="b3d7c1dcc3dfdac0c7f382839d839d8b" rel="noreferrer noopener nofollow">[email protected]</a>
│ │ └── @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="6009030f0e2052504e514e52" rel="noreferrer noopener nofollow">[email protected]</a> deduped
│ ├─┬ @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="2441404d504b5609474b49494b4a6410100a150a14" rel="noreferrer noopener nofollow">[email protected]</a>
│ │ ├── @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="670e04080927555749564955" rel="noreferrer noopener nofollow">[email protected]</a> deduped
│ │ ├─┬ @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="8ee3ebeae7efa3fee7ede5ebfccebbbaa0bca0bd" rel="noreferrer noopener nofollow">[email protected]</a>
│ │ │ ├─┬ @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="b3d5dfd2d4f382819d879d86" rel="noreferrer noopener nofollow">[email protected]</a>
│ │ │ │ └── @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="dcb5bfb3b29ceeecf2edf2ee" rel="noreferrer noopener nofollow">[email protected]</a> deduped
│ │ │ ├── @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="86efe5e9e8c6b4b6a8b7a8b4" rel="noreferrer noopener nofollow">[email protected]</a> deduped
│ │ │ └─┬ @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="442921202d25692725362004727c6a746a76" rel="noreferrer noopener nofollow">[email protected]</a>
│ │ │ └── @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="bbd2d8d4d5fb898b958a9589" rel="noreferrer noopener nofollow">[email protected]</a> deduped
│ │ └─┬ @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="aadad8c5ccc3c6cfc9cbd8ceea9b98849e849e" rel="noreferrer noopener nofollow">[email protected]</a>
│ │ ├─┬ @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="7617001702170436474e58465844" rel="noreferrer noopener nofollow">[email protected]</a>
│ │ │ └── @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="7c151f13123c4e4c524d524e" rel="noreferrer noopener nofollow">[email protected]</a> deduped
│ │ └── @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="177e74787957252739263925" rel="noreferrer noopener nofollow">[email protected]</a> deduped
│ ├─┬ @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="4326272a372c316e2e223128272c342d6e3731222d30252c312e263103706d726d7176" rel="noreferrer noopener nofollow">[email protected]</a>
│ │ └─┬ @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="5237363b263d207f313d3f3f3d3c1266647c637c63" rel="noreferrer noopener nofollow">[email protected]</a>
│ │ ├── @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="d4bdb7bbba94e6e4fae5fae6" rel="noreferrer noopener nofollow">[email protected]</a> deduped
│ │ ├─┬ @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="f8959d9c9199d59b998a9cb8cec0d6c8d6ca" rel="noreferrer noopener nofollow">[email protected]</a>
│ │ │ └── @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="6d040e02032d5f5d435c435f" rel="noreferrer noopener nofollow">[email protected]</a> deduped
│ │ └─┬ @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="137e76777a723e637a707876615326273d213d20" rel="noreferrer noopener nofollow">[email protected]</a>
│ │ ├─┬ @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="33555f52547302011d071d06" rel="noreferrer noopener nofollow">[email protected]</a>
│ │ │ └── @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="345d575b5a7406041a051a06" rel="noreferrer noopener nofollow">[email protected]</a> deduped
│ │ └── @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="f69f959998b6c4c6d8c7d8c4" rel="noreferrer noopener nofollow">[email protected]</a> deduped
│ ├─┬ @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="c8ada5a7a2a188fefae6f0e6fc" rel="noreferrer noopener nofollow">[email protected]</a>
│ │ └── @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="8ee7ede1e0cebcbea0bfa0bc" rel="noreferrer noopener nofollow">[email protected]</a> deduped
│ ├─┬ @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="96f0f9e4fbd6a1b8a2b8a7" rel="noreferrer noopener nofollow">[email protected]</a>
│ │ └── @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="b6dfd5d9d8f6848698879884" rel="noreferrer noopener nofollow">[email protected]</a> deduped
│ ├── @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="39505a5657790b091708170b" rel="noreferrer noopener nofollow">[email protected]</a>
│ ├─┬ @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="92fff7f6fbf3bff1f3e0f6d2a4a5bca0bca1" rel="noreferrer noopener nofollow">[email protected]</a>
│ │ ├── @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="3e575d51507e0c0e100f100c" rel="noreferrer noopener nofollow">[email protected]</a> deduped
│ │ └─┬ @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="8ce1e9e8e5eda1fae5e9fbe9feccb8b8a2b8a2b8" rel="noreferrer noopener nofollow">[email protected]</a>
│ │ └── @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="7d141e12133d4f4d534c534f" rel="noreferrer noopener nofollow">[email protected]</a> deduped
│ ├─┬ @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="93fef6f7faf2bef6f7fae7fce1d3a0a4bda3bda2a1" rel="noreferrer noopener nofollow">[email protected]</a>
│ │ ├── @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="3a535955547a080a140b1408" rel="noreferrer noopener nofollow">[email protected]</a> deduped
│ │ └─┬ @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="ec818988858dc18f8d9e88acdad4c2dcc2de" rel="noreferrer noopener nofollow">[email protected]</a>
│ │ └── @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="e9808a8687a9dbd9c7d8c7db" rel="noreferrer noopener nofollow">[email protected]</a> deduped
│ ├─┬ @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="bdd0d8d9d4dc90dbd4d1d0cec9cfd4cdfd8e85938d9389" rel="noreferrer noopener nofollow">[email protected]</a>
│ │ ├── @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="3158525e5f7103011f001f03" rel="noreferrer noopener nofollow">[email protected]</a> deduped
│ │ └─┬ @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="2b464e4f424a06484a594f6b1d13051b0519" rel="noreferrer noopener nofollow">[email protected]</a>
│ │ └── @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="8fe6ece0e1cfbdbfa1bea1bd" rel="noreferrer noopener nofollow">[email protected]</a> deduped
│ ├─┬ @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="bbd6dedfd2da96cbd2d8d0dec9fb8e8f95899588" rel="noreferrer noopener nofollow">[email protected]</a>
│ │ ├─┬ @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="690f05080e29585b475d475c" rel="noreferrer noopener nofollow">[email protected]</a>
│ │ │ └── @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="18717b7776582a283629362a" rel="noreferrer noopener nofollow">[email protected]</a> deduped
│ │ ├── @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="0f666c60614f3d3f213e213d" rel="noreferrer noopener nofollow">[email protected]</a> deduped
│ │ └─┬ @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="4f222a2b262e622c2e3d2b0f7977617f617d" rel="noreferrer noopener nofollow">[email protected]</a>
│ │ └── @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="3e575d51507e0c0e100f100c" rel="noreferrer noopener nofollow">[email protected]</a> deduped
│ ├─┬ @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="fd90989389949293bdccc5d3ccc5d3ce" rel="noreferrer noopener nofollow">[email protected]</a>
│ │ ├─┬ @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="1776617663766557262f39273925" rel="noreferrer noopener nofollow">[email protected]</a>
│ │ │ └── @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="ef868c8081afdddfc1dec1dd" rel="noreferrer noopener nofollow">[email protected]</a> deduped
│ │ └── @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="0e676d61604e3c3e203f203c" rel="noreferrer noopener nofollow">[email protected]</a> deduped
│ ├─┬ @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="315c5e55505d1c5558505d5e567100011f071f05" rel="noreferrer noopener nofollow">[email protected]</a>
│ │ └── @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="b7ded4d8d9f7858799869985" rel="noreferrer noopener nofollow">[email protected]</a> deduped
│ ├─┬ @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="443625202d2b04776a766a77" rel="noreferrer noopener nofollow">[email protected]</a>
│ │ └── @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="2148424e4f6113110f100f13" rel="noreferrer noopener nofollow">[email protected]</a> deduped
│ ├─┬ @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="e390868f868097a3d2d2cdd3cdd2d7" rel="noreferrer noopener nofollow">[email protected]</a>
│ │ └── @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="c4ada7abaa84f6f4eaf5eaf6" rel="noreferrer noopener nofollow">[email protected]</a> deduped
│ ├─┬ @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="265552475253556616081f081413" rel="noreferrer noopener nofollow">[email protected]</a>
│ │ └── @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="5b323834351b696b756a7569" rel="noreferrer noopener nofollow">[email protected]</a> deduped
│ └─┬ @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="f48095879fd99091979d879d9b9ab4c5c2dac5dac6" rel="noreferrer noopener nofollow">[email protected]</a>
│ └── @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="472e24282907757769766975" rel="noreferrer noopener nofollow">[email protected]</a> deduped
├─┬ @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="d4b9b1b0bdb5f9a4bdb7bfb1a694e1e0fae6fae7" rel="noreferrer noopener nofollow">[email protected]</a>
│ ├─┬ @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="385c4a57485c574f5615555d564d78011608160e" rel="noreferrer noopener nofollow">[email protected]</a>
│ │ └── @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="462f25292806747668776874" rel="noreferrer noopener nofollow">[email protected]</a> deduped
│ ├─┬ @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="30565c51577001021e041e05" rel="noreferrer noopener nofollow">[email protected]</a>
│ │ └── @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="1178727e7f5123213f203f23" rel="noreferrer noopener nofollow">[email protected]</a> deduped
│ ├── @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="98f1fbf7f6d8aaa8b6a9b6aa" rel="noreferrer noopener nofollow">[email protected]</a> deduped
│ ├─┬ @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="4b262e2f222a66282a392f0b7d73657b6579" rel="noreferrer noopener nofollow">[email protected]</a>
│ │ └── @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="7c151f13123c4e4c524d524e" rel="noreferrer noopener nofollow">[email protected]</a> deduped
│ └─┬ @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="472a22232e266a322e07767569726976" rel="noreferrer noopener nofollow">[email protected]</a>
│ ├─┬ @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="e8899e899c899aa8d9d0c6d8c6da" rel="noreferrer noopener nofollow">[email protected]</a>
│ │ └── @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="9af3f9f5f4daa8aab4abb4a8" rel="noreferrer noopener nofollow">[email protected]</a> deduped
│ └── @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="7118121e1f3143415f405f43" rel="noreferrer noopener nofollow">[email protected]</a> deduped
└─┬ @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="a3d0cec2d1d78ec0c2d1c7e392908d968d92" rel="noreferrer noopener nofollow">[email protected]</a>
└── @atlaskit/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="3a535955547a080a140b1408" rel="noreferrer noopener nofollow">[email protected]</a> deduped
是否可以仅替换包@atlaskit/icon
,而不替换my-atlaskit-editor
之间树中的所有包 @atlaskit/icon
。在此示例中,它将是以下列表:
@atlaskit/avatar
@atlaskit/calendar
@atlaskit/checkbox
@atlaskit/datetime-picker
@atlaskit/dropdown-menu
@atlaskit/droplist
@atlaskit/editor-common
@atlaskit/editor-core
@atlaskit/editor-markdown-transformer
@atlaskit/emoji
@atlaskit/field-base
@atlaskit/flag
@atlaskit/form
@atlaskit/media-card
@atlaskit/media-editor
@atlaskit/media-filmstrip
@atlaskit/media-picker
@atlaskit/media-ui
@atlaskit/media-viewer
@atlaskit/mention
@atlaskit/modal-dialog
@atlaskit/profilecard
@atlaskit/radio
@atlaskit/select
@atlaskit/smart-card
@atlaskit/status
@atlaskit/task-decision
为了更改嵌套包中的依赖关系
,需要重写很多包。在实践中,我需要 fork 所有这些包并更改每个嵌套包的dependency
以引用我的 fork 版本,该版本再次仅修改了指向另一个 fork 包的dependency
由我。整个替换树的叶子将是一个 package.json
,它指向 @atlaskit/icon
、@atlaskit/icon-file-type 的自由变体
和 @atlaskit/icon-object
。
如果不 fork 和修改整个树中的依赖项,真的没有办法解决这个困惑吗?
最佳答案
NPM natively supports package aliases since version 6.9.0
因此,根据您的情况,您可以采取以下方法:
"dependencies": {
"@atlaskit/editor-core": "npm:another-editor-core@^1.0",
"@atlaskit/media-core": "npm:another-media-core@^1.0",
"@atlaskit/smart-card": "npm:another-smart-card@^1.0"
}
这将产生安装 another-editor-core@^1.0
而不是 @atlaskit/editor-core
的效果。然后,当您的代码尝试要求 @atlaskit/editor-core
时,将需要 another-editor-core
:
const editor = require("@atlaskit/editor-core") // this is actually another-editor-core
一个简单的管理方法是 create an org in npm这样您就可以拥有像 @my-org-name/editor-core
编辑:
正如评论中指出的,上面的解决方案不支持传递依赖,而只支持直接依赖。
目前,即使使用 npm-force-resolutions
,npm 似乎也不支持这一点。经过一番研究后,我找不到任何其他工具可以与 npm 一起使用。
然而, yarn 使用 selective dependency resolutions 支持这一点。 :
"resolutions": {
"@atlaskit/editor-core": "npm:another-editor-core@^1.0",
"@atlaskit/media-core": "npm:another-media-core@^1.0",
"@atlaskit/smart-card": "npm:another-smart-card@^1.0"
}
所以我看到了 3 个可供您继续前进的选择:
- 迁移到yarn(如果您的项目允许)
- 编写一个脚本来解析 package-lock.json 以覆盖已解析的包。这实际上不应该那么难。该脚本可以作为预安装步骤运行,与
npm-force-solutions
完全相同
- 通过
npm-force-resolutions
repo 请求此功能,如果熟悉 clojure 并且时间允许,您可能会自己为存储库做出贡献。
祝你好运!
关于node.js - 如何在不接受 Atlassian 设计指南许可的情况下使用 npm 包的替代实现来使用 Atlaskit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64121161/