如何压扁发布的NPM模块的文件结构
我有一个TypeScript项目,我作为一个NPM模块发布。 编译项目的输出在{mymodule}/dist/src/...
,这意味着当我发布时,NPM模块也采用上述文件结构。
这样做的缺点是需要单个模块时,它看起来像这样:
var individualModule = require('/dist/src');
我想扁平化已发布模块的输出,其中已发布模块中的文件将是{mymodule}/...
而不是{mymodule}/dist/src/...
在我看来,这样做的正确方法是通过在根文件中的module.exports
(或import/export
)从你的包有意地暴露模块。
const exposableOne = require('/dist/src/ex-1.js'); const exposableTwo = require('/dist/src/ex-2.js'); // ... module.exports = { mymodule, exposableOne, exposableTwo };
你可以看看主要的Express框架文件 – 他们使用exports.
来做几乎相同的事情exports.
指示。
不完全是TypeScript的东西,但想法是相当普遍的。
更新:
如果你确实需要通过require/exports
来做到这一点,那么你可以使用符号链接的方法。 我不确定这个选项在所有平台上都能正常工作,但是对于一个例子,你可以在GitHub上检查这个解决的问题和这个库 。 后者中的aliases
目录包含符号链接到recipes
目录模块的文件。