【问题标题】:How to replace NPM node_module folder with another folder?如何用另一个文件夹替换 NPM node_module 文件夹?
【发布时间】:2012-11-20 00:35:03
【问题描述】:

默认情况下,NPM 是在“node_modules”下安装模块。 有没有办法将其更改为例如“my_modules”?

【问题讨论】:

    标签: node.js npm


    【解决方案1】:

    所有节点模块的标准是使用node_modules目录。

    不要试图违背这个统一的标准。

    您想通过自定义目录来完成什么?


    注意:

    以下命令将安装一个模块到my_project/node_modules/some_module

    [~/my_project] $ npm install some_module
    

    如果您想安装模块并使它们在您的系统上全局可用,您可以使用--global (-g) 标志

    [~/my_project] $ npm install -g some_module
    

    使用-g 标志安装的包安装到~/.npm


    编辑

    根据您的评论,您可以尝试安装任何包含package.json 文件的目录

    [~/my_project] $ npm install /path/to/my/pkg
    

    或者,您可以安装符号链接,而不是将整个模块复制到您的 ~/my_project/node_modules 目录。

    [~/my_project] $ npm link /path/to/my/pkg
    

    有关此的更多信息:

    $ npm help install
    $ npm help link
    

    【讨论】:

    • 我想使用 npm 来安装我的 node 包,以及我使用的其他包。
    • 具体情况:我想用vagrant运行一个node应用。当主机操作系统是 windows,而客户端是 Linux 时,由于权限不稳定,您无法从 /vagrant 运行应用程序。这不会直接影响节点应用程序,但会影响附带可执行文件的节点模块。
    • @DustyJ 我没有在 Windows 上使用 Vagrant 或 node.js 的经验。我无法为这样的配置提供任何帮助。
    • 很惊讶我们会建议人们不要自定义文件夹位置。这似乎很僵硬。如果我有一部分项目使用节点并且我希望将其保持在该范围内而不是污染根目录,那么必须有一种方法。我认为使用.npmrc 之类的文件很容易做到这一点,并且一直在寻找答案。还没有运气。编辑:添加了关于 .npmrc 的行
    • @VinayRaghu,无论如何,是什么阻止您将应用程序的所有节点组件放在子目录中?如果您执行mkdir foo; cd foo; npm init; npm install whatever,您的节点应用程序将位于foo,您的节点模块将安装到foo/node_modules。这遵循 npm 标准并很好地组织您的节点应用程序。
    猜你喜欢
    • 2019-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-29
    • 2011-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多