0

我有一个模块,我想让用户决定他想使用哪个版本,纯粹用 javascript 编写的还是用 C 语言编写的原生版本(所以他需要先编译它)。

npm install命令没有任何选项,但您可以选择版本,这样我就可以创建两个分支:v1.x 用于 js,v2.x 用于本机。

如果用户想安装用javascript编写的模块:

"dependencies": {
  "my-module": "1.x"
}

如果用户想安装原生模块:

"dependencies": {
  "my-module": "2.x"
}

还有其他更好的方法来发布具有相同模块名称的纯模块和本机模块吗?

4

1 回答 1

1

好的,这不是你要找的,但是这里……</p>

您正在尝试找到一个不存在的与Gentoo Use Flags等效的 NPM。您可以做的最接近的事情是发布您的纯 JS 版本,并让用户直接链接到 git 存储库,而不是如果他们想使用本机版本。

package.json

“依赖”:{
  "mymodule": "1.2.3" // js 版本
}

“依赖”:{
  "mymodule": "http://github.com/mymodule-native" // 原生版本
}

您的用户无需更改他们require的版本即可在版本之间切换,只需 package.json 中的一行。

另一种解决方案是尝试构建本机版本而不在失败时引发错误。然后你可以在你的模块中有一个简单的设置来在实现之间切换。你可以看看这个其他的 stackoverflow 线程

于 2013-06-25T16:03:30.543 回答