Javascript 如何展平已发布NPM模块的文件结构

Javascript 如何展平已发布NPM模块的文件结构,javascript,node.js,npm,node-modules,Javascript,Node.js,Npm,Node Modules,我有一个TypeScript项目,作为NPM模块发布。编译项目的输出在目录{mymodule}/dist/src/…中,这意味着当我发布时,NPM模块也采用上述文件结构 这样做的缺点是,当需要单独的模块时,它会如下所示: var individualModule = require('/dist/src'); 我想展平已发布模块的输出,其中已发布模块中的文件将是{mymodule}/..,而不是{mymodule}/dist/src/..,我认为这样做的正确方法是通过module.export

我有一个TypeScript项目,作为NPM模块发布。编译项目的输出在目录
{mymodule}/dist/src/…
中,这意味着当我发布时,NPM模块也采用上述文件结构

这样做的缺点是,当需要单独的模块时,它会如下所示:

var individualModule = require('/dist/src');

我想展平已发布模块的输出,其中已发布模块中的文件将是
{mymodule}/..
,而不是
{mymodule}/dist/src/..

,我认为这样做的正确方法是通过
module.exports
(或
导入/导出
)在根文件中

const exposableOne = require('/dist/src/ex-1.js');
const exposableTwo = require('/dist/src/ex-2.js');

// ...

module.exports = { mymodule, exposableOne, exposableTwo };
您可以查看main-它们使用
导出执行几乎相同的操作。
指令

不完全是打字稿的东西,但这个想法很普遍

更新:


如果您确实需要在不通过
require/exports
绑定的情况下执行此操作,则可以使用符号链接方法。我不确定此选项是否在所有平台上都能正常工作,但举个例子,您可以在GitHub上检查此选项。后者中的
别名
目录包含符号链接到
配方
目录的文件ectory模块。

这实际上描述了我当前的设置,但不是我想要的设置。使用此设置,使用我的库的代码必须执行类似于
var mylib=require('mylib')。exposableOne
…但这不是我想要的,我希望类似于
var exposableOne=require的内容需要可公开('mylib/exposableOne')