是否可以提供同一个软件包的两个版本npm?
我有一个git repository:
MyRepo
|- library
|- FolderToHide
|- package.json
|- .npmignore
字符串
文件package.json包含:
{
"name": "myRepo",
"repository": {
"type": "git",
"url": "https://somewhere"
},
...
}
型
如何配置我的软件包以创建一个带有FolderToHide
的版本和另一个不带FolderToHide
的版本?
我想要这样的东西:
MyRepo2
|- node_modules
|- myRepo
|- library
MyRepo3
|- node_modules
|- myRepo
|- library
|- FolderToHide
型
MyRepo3可以用作调试仓库,也许可以为包创建调试版本?
2条答案
按热度按时间eagi6jfj1#
如果你希望它是一个npm包,例如
my-package
(而不是两个单独的包my-package
和my-package-with-hidden-folder
),你可以使用dist-tags。1.当你对你想要发布的软件包做了修改后,将
FolderToHide
添加到你的.npmignore
中。1.将
-limited
添加到package.json
中的软件包版本(因此它看起来像2.1.0-limited
)并运行npm publish --tag limited
(您可以使用任何您想要的名称替换limited
)。这将发布带有limited
标记的不带FolderToHide
的软件包版本。1.从
.npmignore
中删除FolderToHide
1.将
package.json
中的-limited
更改为-full
并运行npm publish --tag full
(同样,full
可以是您希望的任何名称)。这将发布包含FolderToHide
的新版本软件包。然后,当你想在另一个项目中安装你的软件包时,你可以运行
npm install my-package@limited
或npm install my-package@full
。或者,你可以决定将其中一个版本作为默认选项。在这种情况下,你应该省略它的dist-tag。所以你只需要运行
npm publish
而不是npm publish --tag full
。这将(隐式地)将标签latest
分配给发布的版本。当你安装包而不指定标签(npm install my-package
)时,npm将使用带有latest
标签的包。irtuqstp2#
如果我理解正确的话,你想发布两个不同的包到npm(或类似的),但不想要两个“仓库”?
好的,首先,在包的根目录下创建一个node-script,例如,你可以称之为“js.js”。
在该脚本中,您可以放入如下内容(伪代码):
字符串
然后在
package.json
中添加一个script标签:型
因此,每次要发布时,只需运行
npm run release
。npm pack
将只打包files
数组中的内容。单击此处查看有关files
的完整文档注意这只是未经证实的伪代码,YMMV。
.npmignore
和.gitignore
隐藏,包括包含您想要释放的files
的修改后的package.json
),并从该目录运行npm publish
。