fut*_*lib 315 package node.js npm npm-private-modules
我已经采用了一些共享代码并将其放入NPM模块中,我不想将其上传到中央注册表.问题是,如何从其他项目安装它?
显而易见的方法可能是建立我自己的NPM注册表,但根据文档,这涉及很多麻烦.
我可以只安装一个位于本地文件系统上的NPM模块,甚至可以安装git吗?
npm install --from-git git@server:project
Run Code Online (Sandbox Code Playgroud)
250*_*50R 510
在你的私人npm模块中添加
"private": true
Run Code Online (Sandbox Code Playgroud)
到你的package.json
然后引用另一个模块中的私有模块,在package.json中使用它
{
"name": "myapp",
"dependencies": {
"private-repo": "git+ssh://git@github.com:myaccount/myprivate.git#v1.0.0",
}
}
Run Code Online (Sandbox Code Playgroud)
mih*_*hai 255
cd somedir
npm install .
Run Code Online (Sandbox Code Playgroud)
要么
npm install path/to/somedir
Run Code Online (Sandbox Code Playgroud)
somedirpackage.json里面必须包含它.
它也知道git:
npm install git://github.com/visionmedia/express.git
Run Code Online (Sandbox Code Playgroud)
Col*_*nic 61
我可以只安装一个位于本地文件系统上的NPM包,或者甚至可以安装git吗?
是的你可以!来自docs https://docs.npmjs.com/cli/install
包裹是:
- a)包含package.json文件描述的程序的文件夹
- b)包含(a)的压缩的tarball
- c)解析为(b)的网址
- d)
<name>@<version>与(c)一起在登记处公布的a- e)a
<name>@<tag>指向(d)- f)
<name>具有满足(e)的"最新"标签的a- g)
<git remote url>解析为(b)
是不是很棒?
arc*_*don 47
2016年1月更新
除了其他答案之外,有时候您希望在团队环境中拥有私有模块.
无论Github上和到位桶支持生成一个团队的概念API密钥.此API密钥可用作执行此团队的API请求的密码.
在你的私人npm模块中添加
"private": true
Run Code Online (Sandbox Code Playgroud)
到你的package.json
然后引用另一个模块中的私有模块,在package.json中使用它
{
"name": "myapp",
"dependencies": {
"private-repo":
"git+https://myteamname:aQqtcplwFzlumj0mIDdRGCbsAq5d6Xg4@bitbucket.org/myprivate.git",
}
}
Run Code Online (Sandbox Code Playgroud)
其中team name = myteamname,API Key = aQqtcplwFzlumj0mIDdRGCbsAq5d6Xg4
在这里我引用了一个bitbucket repo,但它几乎使用github相同.
最后,作为替代方案,如果您真的不介意每月支付7美元(截至撰写时),那么您现在可以开箱即用私有NPM模块.
Ben*_*esh 29
FWIW:在处理私有组织存储库时,我遇到了所有这些问题的问题.
以下对我有用:
npm install -S "git+https://username@github.com/orgname/repositoryname.git"
Run Code Online (Sandbox Code Playgroud)
例如:
npm install -S "git+https://blesh@github.com/netflix/private-repository.git"
Run Code Online (Sandbox Code Playgroud)
在这一个案例中,我不完全确定为什么其他答案对我不起作用,因为它们是我在点击谷歌并找到答案之前首先尝试的.其他答案就是我过去所做的.
希望这有助于其他人.
我遇到了同样的问题,经过一番搜索后,我找到了Reggie(https://github.com/mbrevoort/node-reggie).它看起来很稳固.它允许将NPM模块轻量级发布到私有服务器.不完美(安装时没有身份验证),它仍然非常年轻,但我在本地测试它,它似乎做它应该做的事情.
那是......(这只是来自他们的文档)
npm install -g reggie
reggie-server -d ~/.reggie
Run Code Online (Sandbox Code Playgroud)
然后进入你的模块目录并...
reggie -u http://<host:port> publish
reggie -u http://127.0.0.1:8080 publish
Run Code Online (Sandbox Code Playgroud)
最后,您可以通过直接npm install命令或者在package.json中使用该URL来安装来自reggie的软件包...就像这样
npm install http://<host:port>/package/<name>/<version>
npm install http://<host:port>/package/foo/1.0.0
Run Code Online (Sandbox Code Playgroud)
要么..
dependencies: {
"foo": "http://<host:port>/package/foo/1.0.0"
}
Run Code Online (Sandbox Code Playgroud)
以下面的可访问方式构建代码.如果这对您有用.
NodeProjs\APPS\MainApp \的package.json
NodeProjs \模块\ DataModule的\的package.json
在MainApp @ NodProjs\Apps\MainApp \中
npm install --S ../../Modules/DataModule
Run Code Online (Sandbox Code Playgroud)
您可能需要将package.json更新为:
"dependencies": {
"datamodule": "../../Modules/DataModule"
}
Run Code Online (Sandbox Code Playgroud)
这适用于我的情况.
Npm 现在以 7 美元/用户/月的价格提供无限的私有托管模块,像这样使用
cd private-project
npm login
Run Code Online (Sandbox Code Playgroud)
在你的包 json 集中 "name": " @username/private-project"
npm publish
Run Code Online (Sandbox Code Playgroud)
然后要求您的项目:
cd ../new-project
npm install --save @username/private-project
Run Code Online (Sandbox Code Playgroud)
这就是我要找的:
# Get the latest from GitHub, public repo:
$ npm install username/my-new-project --save-dev
# Bitbucket, private repo:
$ npm install git+https://token:x-oauth-basic@github.com/username/my-new-project.git#master
$ npm install git+ssh://git@github.com/username/my-new-project.git#master
# … or from Bitbucket, public repo:
$ npm install git+ssh://git@bitbucket.org/username/my-new-project.git#master --save-dev
# Bitbucket, private repo:
$ npm install git+https://username:password@bitbucket.org/username/my-new-project.git#master
$ npm install git+ssh://git@bitbucket.org/username/my-new-project.git#master
# Or, if you published as npm package:
$ npm install my-new-project --save-dev
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
172478 次 |
| 最近记录: |