我有打字稿速递项目,我需要部署到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并不存在于整个应用程序代码中!
这意味着它不应该是必需的模块,因为节点应该负责执行。
根据网上的建议,
heroku updated尽管如此,错误场景仍然保持不变!
你知道为什么我的部署会崩溃吗?
发布于 2020-06-25 16:37:17
npm install --save tslib帮我解决了这个问题。
对我来说,我必须显式地添加tslib作为运行时依赖项。尽管tslib在本地可用,但heroku cli似乎会执行一个树抖动过程,删除它认为不需要的节点模块。
https://stackoverflow.com/questions/62453069
复制相似问题