我不知道为什么TypeScript不编译node_modules
文件夹中的任何内容。
这是我的tsconfig.json
:
{
"compilerOptions": {
"rootDir": ".",
"baseUrl": ".",
"paths": {
"shared": ["./src/shared"],
"client": ["./src/client"],
"server": ["./src/server"],
"express": ["./node_modules/express"]
},
"plugins": [
{"transform": "ts-transformer-imports"}
],
"esModuleInterop": true,
"allowJs": true,
"target": "es2015",
"module": "commonjs",
"outDir": "./build"
},
"files": ["./src/server/app.ts"]
}
在src/server/app.ts
内部,我同时导入了express
和shared
:
import shared from 'shared';
import express from 'express';
编译成功,并且生成shared
和server
的编译代码。但是,由于某种原因,未生成express
的代码!?
这对我来说绝对没有意义...它是否只是因为某个文件位于node_modules
文件夹中而决定不编译某些内容?
我该如何解决?
编辑:我还尝试将其更改为配置文件中的"express/*": ["./node_modules/express/*"]
,没有任何区别。 (我不知道为什么会这样,但是我发现它在互联网上的某个地方)
答案 0 :(得分:1)
为什么要从node_modules编译软件包?例如。 ./node_modules/express不包含任何TS文件。 NPM软件包通常随附您必须导入和使用的预构建(或预填充)JS代码。 如果您在导入时遇到困难,例如Express提供的功能,请确保您还安装了键入(@ types / express)