【问题标题】:Is it possible to have a separate node_modules folder for devDependencies?是否可以为 devDependencies 设置一个单独的 node_modules 文件夹?
【发布时间】:2013-07-29 12:51:58
【问题描述】:

我有一个要部署到 Heroku 的 Node 应用程序。他们的文档说 check in your node_modules directory 是最佳实践(即不要 gitignore它),以便更快地部署和开发/生产平价。

在我的 package.json 中,我有大量的 devDependencies(主要是 Grunt 插件及其所有部门)和一些常规生产 dependencies,比如 Express。 Heroku 只需要生产部门。我宁愿不检查我所有的开发部门,因为它们大约有 50MB。

有没有办法为您的开发部门提供一个单独的文件夹,例如node_modules_dev?如果这是可能的,那么我可以将node_modules_dev 添加到我的.gitignore,并按照 Heroku 的建议检查常规生产目录node_modules

有没有办法做到这一点?或者你能想出另一种方法来做我想做的事吗?

【问题讨论】:

  • 我也很想知道。我目前只是将开发模块添加到 .gitignore。
  • 如果您手动使用 NPM,可以使用 --prefix 来执行此操作。当您运行npm install 时,您可以控制前缀是什么,并且您的模块将从您指定的文件夹安装在那里。但是,对于 packages.json 和 Heroku,这无济于事。

标签: node.js heroku node-modules


【解决方案1】:

我使用 CI 服务器来构建、测试和部署我的文件 - 所以我一直在寻找一个类似的解决方案,以防止我需要在 Heroku 上部署额外的依赖项和/或重新构建。

运行完所有测试后,我运行npm prune --production,它从node_modules 中删除devDependencies,然后将结果推送到Heroku。

没有额外的文件进入服务器,部署时间也更快,因为 Heroku 避免了构建通常在 Gulp/Grunt 插件中找到的所有二进制文件。

【讨论】:

    【解决方案2】:

    如果您不介意检查它们,并且您唯一关心的是生成的 slug 大小(即:不是您的 git repo 大小,或者将该 repo 转移到 Heroku),那么只需将相关的 node_modules 添加到 @987654322 @。

    文档:Ignoring files with .slugignore

    【讨论】:

    • 谢谢,不知道.slugignore。蛞蝓大小是我主要关心的问题之一,是的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-16
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多