我有一个TypeScript项目,用于将生成的JavaScript文件构建为./src/。这对于现有的npm模块构建时效果非常好(它是一个Angular 2项目,因此可以导入这些模块,但在这种情况下我认为不重要。)
当我安装一个特定的npm模块(我是作者的ng2-dynamic-dialog)并从该模块导入任何内容时,tsc突然将JavaScript构建到另一个文件夹(而不是将其构建为./src/,它现在构建为./src/src/),它还在./src/中创建了node_modules文件夹的副本,其中只包含ng2-dynamic-dialog。
这可能不是一个很好的探索,所以这里有一个例子 https://github.com/leewinder/ng2-dynamic-dialog(Sha - 8ef439d6)
如果克隆开发分支,并在./samples中运行tsc,您将看到JS文件正确构建到./src。如果打开src / samples / samples.component.ts并从'ng2-dynamic-dialog'取消注释'import {Ng2DynamicDialogComponent}';''并再次运行tsc,你会看到src /现在包含./src/src和./src/node_modules
我的tsconfig.json设置如下
{
"compilerOptions": {
"target": "es5",
"outDir": "src/",
"module": "commonjs",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noImplicitAny": false,
"watch": true,
"diagnostics": true,
"listFiles": true
}
}
如果我将'outDir'更改为./,则不会再发生此重复文件夹问题,但为什么引用此单个npm包会导致此问题?
无论我是否将我的NPM模块添加到systemjs.config.js,都会出现此问题,因此它似乎与此无关。
我只能假设我的配置或我的npm包有一些东西,但是npm包看起来很好。
npm包的源代码与上面的repo相同,但在开发文件夹中。
任何帮助都会受到重视,因为我现在正撞在砖墙上。