我有一个Lerna项目,其中包含两个Typescript软件包A和B。两个软件包的tsconfig.json
是:
{
"compilerOptions": {
"module": "commonjs",
"target": "es6",
"esModuleInterop": true,
"noImplicitAny": false,
"noUnusedLocals": true,
"noUnusedParameters": true,
"removeComments": false,
"preserveConstEnums": true,
"sourceMap": true,
"allowJs": false,
"resolveJsonModule": true,
"declaration": true,
"moduleResolution": "node",
"lib": ["es2015", "dom"]
},
"include": [
"src",
"test"
],
"exclude": [
"node_modules/**",
"packages/*/node_modules/**",
"examples/*/node_modules/**",
"**/*.d.ts"
]
}
软件包A包含以下代码:
const data = require('./myData.json');
程序包B取决于程序包A。在程序包B中,将调用程序包A导出的函数,因此将加载上面的代码。但是,在这种情况下,我得到了Error: Cannot find module './myData.json'
。现在,在软件包A的编译器输出目录中查找我看不到JSON文件。确实,在包A的包B的node_modules
目录中,我也看不到该文件。
为什么发布的包中缺少JSON文件?在Typescript包中包含资源文件(JSON,纯文本)是否需要做一些特殊的事情?