【问题标题】:Heroku deployment crashes for a non-required node moduleHeroku 部署因非必需节点模块而崩溃
【发布时间】:2020-06-26 00:37:17
【问题描述】:

我有 a typescript express project 需要部署到 Heroku。

这个项目在本地机器上运行得非常好,但是当将它部署到 Heroku 时,它会抛出这个奇怪的错误:

> learning@0.0.0 start /app
> node -r module-alias/register ./dist --env=production
internal/modules/cjs/loader.js:969
throw err;
^
Error: Cannot find module 'tslib'
Require stack:
- /app/dist/index.js
     at Function.Module._resolveFilename (internal/modules/cjs/loader.js:966:15)
     at Function.Module._resolveFilename (/app/node_modules/module-alias/index.js:49:29)
     at Function.Module._load (internal/modules/cjs/loader.js:842:27)
     at Module.require (internal/modules/cjs/loader.js:1026:19)
     at require (internal/modules/cjs/helpers.js:72:18)
     at Object.<anonymous> (/app/dist/index.js:3:17)
     at Module._compile (internal/modules/cjs/loader.js:1138:30)
     at Object.Module._extensions..js (internal/modules/cjs/loader.js:1158:10)
     at Module.load (internal/modules/cjs/loader.js:986:32)
     at Function.Module._load (internal/modules/cjs/loader.js:879:14) {
   code: 'MODULE_NOT_FOUND',
   requireStack: [ '/app/dist/index.js' ]

令我惊讶 - tslib 不存在于整个应用程序代码中!!!

这意味着它不应该是一个必需的模块,因为节点应该负责执行。

根据网上的建议,

仍然,错误场景保持不变!

知道为什么我的部署会崩溃吗?

【问题讨论】:

    标签: node.js typescript heroku


    【解决方案1】:

    npm install --save tslib 帮我解决了这个问题。

    对我来说,我必须明确添加 tslib 作为运行时依赖项。尽管 tslib 在本地可用,但 heroku cli 似乎做了一个摇树过程,它删除了它认为不需要的节点模块。

    【讨论】:

      猜你喜欢
      • 2014-03-25
      • 1970-01-01
      • 2020-08-02
      • 2012-10-02
      • 1970-01-01
      • 2016-12-06
      • 2020-08-12
      • 2017-06-24
      • 1970-01-01
      相关资源
      最近更新 更多