使用非模块的 npm 安装库
Posted
技术标签:
【中文标题】使用非模块的 npm 安装库【英文标题】:Installing a library with npm that is not a module 【发布时间】:2017-02-14 16:21:51 【问题描述】:我正在做一个需要 WebGazer.js (https://webgazer.cs.brown.edu/) 的项目。我很想以某种方式将此库添加到 package.json,以便我的所有库都使用“npm install”安装,而不必调用“npm install”然后单独下载 webgazer。
有没有办法通过包含一个链接或类似的东西来做到这一点?我是 npm 新手,所以我什至不知道从哪里开始,或者这是否可能。
【问题讨论】:
【参考方案1】:npm install
仅适用于模块。但是,WebGazer 有一个用于 NPM 的 package.json,这就是你所需要的。 (该模块不需要在 NPM 存储库中列出。)
试试这样的:
npm install --save git+https://git@github.com/brownhci/WebGazer.git
如果您确实遇到了您描述的问题,您可以设置一个postinstall
脚本来安装您需要的任何其他东西,但是您需要它。 https://docs.npmjs.com/misc/scripts
【讨论】:
这应该可以,但是当我在终端中输入它时,什么也没有发生。我必须使用 ctrl C 才能摆脱它。知道可能是什么问题吗? 可以是任何东西。更新 NPM,尝试git_ssh://
而不是 git+https://
,摆动 WiFi 天线,向火山献祭一只山羊,等待另一个货箱从天上掉下来,等等。【参考方案2】:
对于那些想知道如何安装您自己创建并且在 git 上的非 node_module 依赖项的人:
只需将package.json
文件添加到您的(非node_module)依赖项中,至少看起来像这样:
"name": "your-dependency-name",
"version": "1.0.0",
"repository":
"type": "git",
"url": "https://github.com/<user>/<repo>.git"
然后在你的“母亲”项目中关注ryanve'sanswer:
可以通过 ssh 或通过 https 和 oauth 完成。
https 和 oauth:创建一个具有“repo”范围的访问令牌,然后使用以下语法:
"包名": "git+https://:x-oauth-basic@github.com//.git" ssh:设置 ssh 然后使用这个语法:
"包名": "git+ssh://git@github.com//.git"
(感谢Brad之前所说的)。
【讨论】:
以上是关于使用非模块的 npm 安装库的主要内容,如果未能解决你的问题,请参考以下文章