首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用npm安装或更新所需的包,就像使用rubygems的bundler一样。

使用npm安装或更新所需的包,就像使用rubygems的bundler一样。
EN

Stack Overflow用户
提问于 2011-02-02 15:49:04
回答 6查看 92.2K关注 0票数 88

我喜欢Bundler,它在依赖管理方面很棒。我喜欢npm,安装节点包很容易!我有一个nodejs应用程序,并希望能够指定我的应用程序的依赖关系,并在我部署应用程序的任何地方轻松地安装/更新它们的。这不是我要发布的库,它是一个完全成熟的web应用。

我知道npm bundle命令,但它似乎只是简单地覆盖了安装包的目录。

我习惯于这样使用bundler:

代码语言:javascript
复制
# Gemfile
gem "rails", "3.0.3"

仅当rails v3.0.3和任何其他必需的gem尚不存在时,才在主机上安装它们

代码语言:javascript
复制
> bundle install

如何使用npm实现类似的功能?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-05-17 04:42:42

从npm 1.0开始(如果您遵循自述文件中的步骤,它现在是您默认获得的),"bundle“不再是一个独立的东西--它只是”它的工作方式“。

所以:

  1. 将一个package.json文件放在项目的根目录下
  2. 在该文件中列出您的副手

{ "name“:"my-project”,"version“:"1.0.0”,"dependencies“:{ "express”:"1.0.0“} }

  • npm install由于您在没有参数的情况下调用此locally.

  • require("express"),并且不是在全局模式下,它只会安装您所有的副产品,并且会很开心。
票数 148
EN

Stack Overflow用户

发布于 2011-03-13 19:48:19

编辑:仅适用于npm 1.0以下版本

很难弄清楚这一点,但NPM使这一切成为可能,

您需要三个组件

  1. 资源库中的一个子目录(即上述目录中列出了需要dependencies

package.json文件的package.json文件

示例

假设是您唯一的依赖项

deps/package.json

注意:每次修改依赖项时,请递增版本号

代码语言:javascript
复制
{
  "name": "myapp_dependencies",
  "version": "0.0.1",
  "engines": {
    "node": "0.4.1"
  },
  "dependencies":{
    "express": "2.0.0beta2"
  }
}

deps/index.js

代码语言:javascript
复制
export.modules = {
  express: require('express')
  //add more
}

现在,您应该能够使用npm安装依赖项了。您甚至可以将此作为部署过程的一部分

代码语言:javascript
复制
cd deps
npm install

然后在你的应用程序代码中,你可以像这样访问你的特定版本的express:

代码语言:javascript
复制
var express = require('myapp_dependencies').express;
票数 10
EN

Stack Overflow用户

发布于 2011-02-02 20:33:04

你应该阅读这两篇来自Isaacs(作者npm)博客的文章。我认为他们真的很好,我相信他们会告诉你如何实现你的目标:

  1. http://blog.izs.me/post/1675072029/10-cool-things-you-probably-didnt-realize-npm-could-do
  2. http://foohack.com/2010/08/intro-to-npm/

我相信链接#1(第11点)解释了这一点:

11:将所有依赖项捆绑到包本身中

当您使用npm bundle命令时,npm会将所有依赖项放入包的node_modules文件夹中。但它并没有止步于此。

如果你想依赖注册表之外的东西,你可以这样做。只需执行以下操作:

npm bundle install tarball这将把http://github.com/whoever/whatever/tarball/master的内容安装到这个包中,然后你可以把它作为依赖项列出来,在安装你的包的时候,它不会尝试安装它。

如果您有自己的分支,并且不想更改名称,这也很方便。

实际上,您几乎可以在捆绑包中运行任何npm命令。要查看其中的内容,可以执行npm bundle ls。要删除某些内容,请执行npm bundle rm操作。当然,你也可以安装多个版本并激活你想要的版本。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4871932

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档