node.js - 设置已发布的 npm 项目的 "root"

标签 node.js npm package.json

我正在向 npm 注册表发布一个名为 foo 的 npm 包。 我使用 compile-to-js 语言编写了包。 为了理智,我将编译后的输出放入项目目录的 dist/ 文件夹中。 我的 package.json 将入口点列为 dist/entry.js:

{
  "name": "foo",
  "main": "dist/entry.js",
}

有时,我想使用包中不属于入口点的文件。例如,在 dist/util.js 中有一个名为 whatever 的非常有用的导出:

import { whatever } from "foo/dist/util";

这可行,但是强制我的包的用户在所有 import 语句中键入 dist/ 是不方便的。

此外,重新导出每个可能的 util 函数并不是 DRY。 我不想从入口点重新导出

理想情况下,我想使用以下语法从 dist/ 导入文件:

import { whatever } from "foo/util"

如何配置我的 package.json 以在我的项目的 dist/ 文件夹中搜索文件?

最佳答案

这是不可能的。

这就是为什么某些包具有重新导出所有公共(public)导出的入口点文件的原因(并非驻留在 dist 中的所有内容都旨在供最终用户使用),例如@angular/core.

以及某些包具有不合适的文件结构的原因,这些文件结构已发布到 NPM 注册表并支持正确的导入路径,例如rxjs

关于node.js - 设置已发布的 npm 项目的 "root",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51621415/

相关文章:

node.js - 如何使用 Chef 安装 nodejs 和 npm,以便 root 以外的用户可以使用它

npm - 如何加快 webpack 开发速度

windows-10 - 如何在我的 Electron 应用程序的标题中放置一个空格?

npm - 将库从依赖项重定位到 package.json 中的 devDependencies block 的命令?

node.js - 使用 mongoose 更新嵌套 json 文档中的一个元素

javascript - 如何在 Node.JS 中使用这个函数?

node.js - 为什么Amazon DynamoDB的Delete方法不返回删除的结果?

javascript - csv 到 json 转换错误

node.js - 安装 npm 包时发生的事件?

reactjs - 无法为 Electron 构建 .exe