【问题标题】:Which files should I include when I wish to deploy a library with my project using node.js?当我希望使用 node.js 为我的项目部署一个库时,我应该包含哪些文件?
【发布时间】:2011-05-10 11:57:47
【问题描述】:

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

这应该怎么做?我应该包括哪些文件?我的大部分图书馆都在/usr/local/lib/node/

【问题讨论】:

    标签: deployment node.js


    【解决方案1】:

    创建一个 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 上发布我的应用程序。你是说npm link 通过在 package.json 中安装所有依赖项来工作吗?
    • @TiansHUo 如果您创建一个 package.json 文件并声明您的依赖项。然后您可以在该目录中调用npm link,它会在您的包中查找并自动为您安装所有依赖项。
    【解决方案2】:

    运行独立的 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。

    更多信息请参见http://nodejs.org/docs/v0.4.7/api/modules.html

    【讨论】:

    • 库中的所有文件?那不是太大了吗?我想知道的是哪些文件是必不可少的,哪些是唯一的来源(例如 c-source)。
    • 好吧,正如我所指出的,节点二进制文件已经包含所有“本机”模块(断言、缓冲区等)。您只需要包含您的应用程序所需的任何附加模块。
    • 你的意思是附加模块的所有文件?还是一个子集就足够了?
    • 您只需要包含您的应用程序所需的那些库。因此,如果您的应用程序使用“express”,则需要包含它以及它的任何依赖项。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-14
    • 2021-09-26
    • 1970-01-01
    • 2014-12-12
    • 2020-12-30
    相关资源
    最近更新 更多