【发布时间】:2011-05-10 11:57:47
【问题描述】:
我使用 npm 来安装我的大部分依赖库。现在我想将这些库添加到我的工作目录中,以便另一台计算机可以直接运行它而无需手动下载和安装这些文件。 我在 github 上看到很多项目都是这样做的。
这应该怎么做?我应该包括哪些文件?我的大部分图书馆都在/usr/local/lib/node/
【问题讨论】:
标签: deployment node.js
我使用 npm 来安装我的大部分依赖库。现在我想将这些库添加到我的工作目录中,以便另一台计算机可以直接运行它而无需手动下载和安装这些文件。 我在 github 上看到很多项目都是这样做的。
这应该怎么做?我应该包括哪些文件?我的大部分图书馆都在/usr/local/lib/node/
【问题讨论】:
标签: deployment node.js
创建一个 package.json 文件,说明您的依赖项,然后使用 npm link 从该包文件安装。
示例包文件:
{
"name": "Inventory-System",
"description": "Manage Inventory web app",
"version": "0.0.1",
"author": "Raynos",
"dependencies": {
"now": "0.5.3",
"backbone": "0.3.2",
"cradle": "0.5.5",
"supervisor": "0.1.2",
"less": "1.0.41",
"ejs": "0.4.1"
}
}
这允许您以声明方式定义您的依赖项,然后安装您的库,因为就像npm link 一样简单。
您还可以通过npm 进一步发布自己的库,然后在另一台计算机上调用npm install myLibrary。
【讨论】:
npm link 通过在 package.json 中安装所有依赖项来工作吗?
npm link,它会在您的包中查找并自动为您安装所有依赖项。
运行独立的 node.js 应用程序所需的只是应用程序代码和 node 二进制可执行文件(通常位于 /usr/local/bin 下),因为它已经包含所有“本机”模块。 (请参阅下面的列表。)如果您的应用程序需要这些库以外的其他库,则需要将它们作为应用程序的一部分提供。
如果您选择使用 npm 将应用程序部署到服务器,@Raynos 下面概述的方法将很好地工作。
另一方面,如果您选择通过 git 或存档将应用程序部署到服务器,则需要提供应用程序所需的所有库及其依赖项。
一种方法是在应用程序主目录的“node-modules”目录下安装/复制所有必需的库。
从 Node@0.4.7 开始,原生模块包括:assert、buffer、child_process、console、constants、crypto、dgram、dns、events、freelist、fs、http、https、module、net、os、path、 querystring、readline、repl、stream、string_decoder、sys、timers、tls、tty、url、util 和 vm。
【讨论】: