执行tsc时,所有内容都会编译到我的dist文件夹中。但是如何将npm依赖项也包含到dist文件夹中呢?
这是我的tsconfig
{
"compilerOptions": {
"target": "es2017",
"module": "commonjs",
"outDir": "./dist",
"rootDir": "./src",
"strict": true,
"moduleResolution": "node",
"esModuleInterop": true,
},
"exclude":[
"./redis",
"./mongodb"
]
}package.json构建脚本如下所示:
"build": "tsc"
当我将dist文件夹移出项目文件夹并尝试
node dist/index.js我缺少所需的依赖项。
例如:
internal/modules/cjs/loader.js:638
throw err;
^
Error: Cannot find module 'bullmq'我尝试将整个node_modules文件夹复制到dist,但随后收到以下错误:
ReferenceError: TextEncoder is not defined
at Object.<anonymous> (/var/www/vismasync/node_modules/whatwg-url/dist/encoding.js:2:21)谢谢!
发布于 2021-09-15 17:23:02
这不是特定于typescript的问题,而是节点应用程序如何工作的问题。对于具有依赖关系的节点应用程序,所有依赖关系都存储在node_modules下。这就是为什么需要运行npm i来部署项目的原因。
对于你的问题,听起来你需要的是一个捆绑器,顾名思义,它将包括你的代码依赖在内的所有东西捆绑到一个巨大的js文件中。然后,您可以在不使用node_modules的情况下使用此js文件。在这种情况下,可以查看rollup或webpack。
https://stackoverflow.com/questions/69197362
复制相似问题