发布包到npm,如何只发布文件夹内文件而不包含文件夹本身?

发布于 2022-09-12 03:16:12 字数 992 浏览 22 评论 0

如题,有这样一个工程:

testProject
    |--dist
    |   |--xxx1.js
    |   |--xxx2.js
    |   |--dir1
    |   |--dir2
    |--src
    |   |--xxx1.js
    |   |--xxx2.js
    |   |--dir1
    |   |--dir2
    |--index.js
    |--package.json

打包编译后的结果在 dist 文件夹下,我执行npm publish后,然后安装后的包结构成这样了

node_modules
    |--testProject
    |     |--dist
    |         |--xxx1.js
    |         |--xxx2.js
    |         |--dir1
    |         |--dir2
    |--其他包
    |   |--xxx1.js
    |   |--xxx2.js
    |   |--dir1
    |   |--dir2
    |--其他包

所以有没有办法发布的文件结构不包含 dist 目录。
期望的结果应该是这样:

node_modules
    |--testProject
    |      |--xxx1.js
    |      |--xxx2.js
    |      |--dir1
    |      |--dir2
    |--其他包
    |   |--xxx1.js
    |   |--xxx2.js
    |   |--dir1
    |   |--dir2
    |--其他包

package.json

{
    "files":[
        "dist",
        "LICENSE",
        ...
    ]
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

御弟哥哥 2022-09-19 03:16:12

理解错了你的需求, 修改答案

npm publish 其实可以加参数, 目标可以是包含 package.json 的目录或者压缩包, 详见文档

你可以利用 npm 的 hook, 在恰当的时机构造好一个压缩包或者目录, 或者比如说你自己写一个 npm script, 自己手动触发. 然后在产生这个目录或者压缩包后, npm publish target.tgz 应该就可以了

这只是个思路, 你可以结合你实际情况来

以下是旧回答


如果没有理解错你的需求的话, 也许你需要使用.npmignore文件

规则等同于.gitignore

官网上可以搜到相关的文档

https://docs.npmjs.com/using-...

安穩 2022-09-19 03:16:12

可以把package.json拷贝到dist文件夹下,修改下file字段再publish。

梦境 2022-09-19 03:16:12

怎么样?解决了吗?我也是不想把dist文件发布到包中

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文