如何在npm上发布一个dist文件夹

17

我有一个 JavaScript 库,想要在 npm 上发布它,我们称之为 foo。 问题是供客户端使用的 JavaScript 文件位于 dist 文件夹下。 因此,目前客户端必须在他们的 import 语句中包含 dist,像这样:

import { bar } from 'dist/foo'

我希望客户能够导入foo库,而不需要明确提及dist,像这样:

import { bar } from 'foo'

有没有办法在foopackage.json中添加属性,或者可能在客户端的package.json中添加?

备注:JavaScript文件在dist文件夹中的原因是因为我的库是用clojurescript编写的。因此源文件位于src下,生成的文件位于dist下。

1个回答

10
你可以在你的package.json文件中添加一个main字段:

main: 如果你有一个单一模块作为程序入口点(就像require("foo")所提供的那样),那么你需要在"main"字段中指定它。

但是它只适用于单个文件,如果你需要要require多个文件,你应该只发布你的dist文件夹。
参考:https://docs.npmjs.com/misc/developers
npm publish dist

在我的情况下,main 的值应该是什么?dist/foo - viebel
我在这里看到 https://github.com/nodejs/node/issues/14970 ,我需要的功能尚未实现。 你的建议和建议的功能有什么区别? - viebel
区别在于main仅适用于单个文件。如果您想要require另一个文件,则必须再次包含dist - Gabriel Bleu
我需要能够包含许多文件。感谢澄清。 - viebel
你只能使用 npm publish dist 发布 dist 文件夹。 - Gabriel Bleu
3
这个建议是针对旧版本的NPM吗?我在这里的文档中没有看到“dist”选项的记录 - https://docs.npmjs.com/cli/v7/commands/npm-publish。当我尝试运行它时,我收到一个错误消息,提示“dist”被解释为包名称。“npm ERR!404未找到 - PUT https://registry.npmjs.org/dist - 未找到” - Erik Hermansen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接