允许从npm软件包进行深度导入,而路径中没有构建目录(例如lib / dist)

时间:2019-08-01 08:25:09

标签: javascript node.js npm yarnpkg packaging

打包npm的代码时,标准方法是将已转译或捆绑的代码放在单独的libdistbuild目录中,并设置package.main属性(和module / browser)指向已构建的文件,这使得在进行裸导入(没有路径)时,构建目录的存在是透明的。但是,如果需要深度导入(导入package.json属性中未引用的特定模块),则意味着构建目录需要包含在路径中,如下所示:require('package/lib/some-module'),这看起来很糟糕。

是否存在同时使用该方法的示例:

  1. 支持深度导入,而路径中没有构建目录
  2. 支持npm-link和Lerna之类的工具
  3. 为了使整洁,仍将构建的文件放在单独的目录中

我尝试或见过的每种方法都不符合其中一项标准;例如,将package.json复制到构建目录(lib / dist)允许从构建目录发布或链接软件包,但是Lerna之类的工具不支持这种方法,因为他们期望package.json位于软件包的根目录中,而不是在构建目录中,因此仅满足点1和3。

将源放置在程序包的根目录中,并在源旁边放置已编译或构建的文件,可以进行深度导入,并且Lerna也支持,但它不符合第三个条件(整理)。

拥有import maps可以解决此问题,但是我不确定是否有任何工具支持导入地图。

问题是:我错过了一些可以满足所有列出的三个点的方法吗?

0 个答案:

没有答案