Deployment 当我希望使用node.js在项目中部署库时,应该包括哪些文件?

Deployment 当我希望使用node.js在项目中部署库时,应该包括哪些文件?,deployment,node.js,Deployment,Node.js,我使用npm安装了我的大多数依赖库。现在,我想将这些库添加到我的工作目录中,以便另一台计算机可以直接运行它,而不必手动下载和安装这些文件。 我在github上看到过很多这样的项目 如何做到这一点?我应该包括哪些文件?我的大多数库都位于/usr/local/lib/node/中。创建一个package.json文件,说明依赖项,然后使用npm link从该包文件安装 示例程序包文件: { "name": "Inventory-System", "description": "Man

我使用npm安装了我的大多数依赖库。现在,我想将这些库添加到我的工作目录中,以便另一台计算机可以直接运行它,而不必手动下载和安装这些文件。 我在github上看到过很多这样的项目


如何做到这一点?我应该包括哪些文件?我的大多数库都位于
/usr/local/lib/node/

中。创建一个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链接


您还可以更进一步,通过
npm
发布自己的库,然后在另一台计算机上调用
npm install myLibrary

运行一个独立的node.js应用程序所需的就是您的应用程序代码和节点二进制可执行文件(通常位于/usr/local/bin下),因为它已经包含了所有的“本机”模块。(请参阅下面的列表。)如果您的应用程序需要这些库以外的库,则需要将它们作为应用程序的一部分提供

如果您选择使用npm将应用程序部署到服务器,则@Raynos下面概述的方法将很好地工作

另一方面,如果选择通过git或归档将应用程序部署到服务器,则需要提供应用程序所需的所有库及其依赖项

一种方法是在应用程序主目录的“node modules”目录下安装/复制所有必需的库

截至Node@0.4.7本机模块包括:断言、缓冲区、子进程、控制台、常量、加密、dgram、dns、事件、自由列表、fs、http、https、模块、网络、操作系统、路径、查询字符串、读线、repl、流、字符串解码器、sys、定时器、tls、tty、url、util和vm


有关详细信息,请参阅。

抱歉,我不想在npm上发布我的应用程序。你是说
npm link
通过在package.json中安装所有依赖项来工作吗?@tishuo如果你创建一个package.json文件并声明你的依赖项。然后,您可以在该目录中调用
npm link
,它将在您的包中查找并自动为您安装所有依赖项。库中的所有文件?那不是太大了吗?我想知道的是哪些文件是必需的,哪些是唯一的源文件(例如c-source)。正如我所指出的,节点二进制文件已经包括了所有“本机”模块(断言、缓冲区等)。您只需要包含应用程序所需的任何附加模块。您是指附加模块的所有文件吗?或者一个子集就足够了?您只需要包含应用程序所需的库。因此,如果您的应用程序使用“express”,则需要包括它以及它的任何依赖项。