【问题标题】:Is there a way to delete "node_modules" except for one package (mocha)?除了一个包(mocha)之外,有没有办法删除“node_modules”?
【发布时间】:2019-12-13 11:02:15
【问题描述】:

我想在 Heroku 上部署我的应用程序后删除 node_modules 文件夹,同时我希望我的单元测试能够工作。

我尝试在package.json 中的heroku-postbuild 脚本上添加node_modules 的删除。它工作正常,但是我的 "test" 脚本失败了,因为他们没有找到 mocha 模块。

据我所知,这些脚本是并行运行的,因此将node_modules 的删除放在"test" 脚本中也不起作用。您有解决此问题的方法吗?

"heroku-postbuild": "npm run build && del-cli ./node_modules/* ",
"test": "mocha -r source-map-support/register ./dist/tests.js"

更多信息:

我想删除它,因为它的大小。每次部署后我都会收到 Heroku 警告,提示已超出 slug 大小。该文件夹占用超过 200MB。而且我部署后不需要node_modules,因为我的应用程序是使用Webpack 捆绑的。我唯一的问题是在运行单元测试时,我需要来自node_modules 的唯一包是mocha

【问题讨论】:

  • 欢迎来到 Stack Overflow。为什么在构建后尝试删除node_modules/?通常,您应该让 Heroku 构建您的依赖项,然后不理会node_modules/。毕竟,您可能需要它在运行时包含的库。
  • 感谢您的回复。我想删除它,因为它的大小。每次部署后我都会收到一条警告,提示已超过 slug 大小。该文件夹占用超过 200MB。部署后我不需要“node_modules”,因为我的应用程序是使用 webpack 捆绑的。我唯一的问题是在运行我的单元测试时,我的意思是我需要从 node_modules 获得的唯一包是 mocha。

标签: javascript node.js heroku webpack mocha.js


【解决方案1】:

我想删除它,因为它的大小。每次部署后我都会收到 Heroku 警告,提示已超出 slug 大小。该文件夹占用超过 200MB。而且我部署后不需要node_modules,因为我的应用程序是使用Webpack 捆绑的。我唯一的问题是在运行我的单元测试时,我需要来自node_modules/ 的唯一包是mocha

在这种情况下,您的大多数依赖项实际上不是dependencies,而是devDependencies

如果您将mocha 保留在您的dependencies 中并将其他所有内容移至devDependencies,则您不必做任何特别的事情。 Heroku prunes devDependencies by default after building your slug.

【讨论】:

    猜你喜欢
    • 2021-12-31
    • 2021-10-15
    • 2013-01-27
    • 1970-01-01
    • 1970-01-01
    • 2023-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多