我正在开发一个用于作为npm包发布的Svelte模块。我想包括一些超过几行的例子。标准的方法是什么?
我认为给原始模块增加额外的依赖关系是没有意义的。我可以创建一个单独的Github项目mymodule-examples,但是将模块和示例分离到两个存储库中也感觉不对。由于sveltekit的性质,每个示例都需要几个文件。
update:引用文档,让我觉得这是建议的方式来组织/发布用SvelteKit制作的库:
组件库具有与SvelteKit应用程序完全相同的结构,除了src/lib是面向公众的位,和您的根包中。Json用于发布包。Src/routes可能是a文档或演示站点随库,或者它可能就像你在开发过程中使用的沙盒一样。
我相信可以控制上传到NPM的内容:
[
files
字段]告诉npm它将打包并上传哪些文件npm。它应该包含您的输出文件夹(默认为dist)…排除不必要的文件(如单元测试,或模块)只能从src/routes等中导入),你可以将它们添加到.npmignore中文件。这将导致更小的软件包,更快地安装。
所以,你可以手动控制上传到NPM的内容:
package.json
files
字段(白名单).npmignore
(blacklist)
至于依赖关系,我相信你可以用dependencies
和devDependencies
来控制它们:
dependencies
:你的库需要的模块devDependencies
:示例需要的模块,但不是您的库需要的模块。
进一步阅读:
- 什么真正被包装? 精益NPM软件包
在我看来是这样的:
/示例目录:
在模块的repo中创建一个/examples文件夹,为每个示例创建单独的子目录。添加一个自述文件。在.npmignore中包含/examples以避免将其发布到npm。
Monorepo:
在repo中使用/packages文件夹,其中包含主模块和单独的示例项目。每个示例都有自己的包。Json用于管理依赖。
子:
为每个示例创建单独的存储库,并将它们作为子模块包含在/examples文件夹中的主模块的repo中。在README.md中提供克隆和初始化子模块的说明。
我会坚持使用自述文件。Md文件,该文件包含您的包的降价格式说明&为如何使用包的小示例标记代码块。如果你需要更复杂的东西,而不仅仅是简单的例子,我将创建一个简单的github页面文档网站,以引用你的包的用户。