使用非模块的 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 安装库的主要内容,如果未能解决你的问题,请参考以下文章

使用npm直接从github repo安装加载模块

使用 npm 安装本地模块?

NPM模块管理

模块解析:NPM 安装来自 Github 的 Typescript 包

理解Node.js安装及模块化

如何通过 NPM 管理非节点模块作为 Node Project 的依赖项?