TypeScript - 导入外部npm模块会导致tsc的输出文件夹更改

时间:2016-08-15 22:59:44

标签: javascript angularjs node.js typescript npm

我有一个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相同,但在开发文件夹中。

任何帮助都会受到重视,因为我现在正撞在砖墙上。

0 个答案:

没有答案