在Visual Studio 2015 Update 3中的Typescript 2.2.1项目中,我在错误列表中得到了数百个错误,例如:

不能写入文件'C:/{{my-project}}/node_modules/buffer-shims/index.js',因为它会覆盖输入文件。

它一直都是这样的。它实际上并没有阻止构建,并且一切都可以正常工作,但是错误列表会分散注意力,并且很难在发生“真正的”错误时定位它们。

这是我的tsconfig。json文件

{
  "compileOnSave": true,
  "compilerOptions": {
    "baseUrl": ".",
    "module": "commonjs",
    "noImplicitAny": true,
    "removeComments": true,
    "sourceMap": true,
    "target": "ES5",
    "forceConsistentCasingInFileNames": true,
    "strictNullChecks": true,
    "allowUnreachableCode": false,
    "allowUnusedLabels": false,
    "noFallthroughCasesInSwitch": true,
    "noImplicitReturns": true,
    "noImplicitThis": true,
    "noUnusedLocals": true,
    "noUnusedParameters": true,

    "typeRoots": [],
    "types": [] //Explicitly specify an empty array so that the TS2 @types modules are not acquired since we aren't ready for them yet.
  },
  "exclude": ["node_modules"]
}

我怎样才能消除这些错误呢?


当前回答

我通过从我的tsconfig中删除“declaration”:true来解决这个问题。json文件。不过现在我没有声明了,所以没用。

其他回答

outDir集。

"outDir": "./",

这个提示是,如果您不设置outDir,那么输出将直接放在输入文件的旁边。allowJs之后,JavaScript文件也会被编译。然后,编译后的JavaScript文件将覆盖源文件。这只是在提醒你。

我也有同样的问题。在我的例子中,这是选项:allowJs: true的结果。

所以我基本上要去掉这一行来消除错误。 我在您的代码中没有看到它,但它可能在这里对您有帮助。

这个配置适合我

"allowJs": true

问题的根源可能是两个文件生成了相同的模块。因此,如果在同一个文件夹中有两个名称相同但扩展名不同的文件,则会导致此错误。

eg:

\index.ts
\index.tsx

解决方案是将其中一个文件名更改为其他名称。

当您尝试运行一个带有两个节点的项目时,很可能会发生这种情况。 对于这种假设,您可以在运行构建后测试名为“node”的计算机上的进程数。 我是怎么解决这个问题的:

步骤1。

比较

node -v

and

nvm -ls

,当前正在使用的版本。 在终端集中当前节点版本:

nvm use {neededVersion}

原则上,在nvm中删除节点的不必要版本(这将帮助IDE自动确定节点的正常版本)。

步骤2。

确定IDE中的当前节点。例如在WebStorm中: Node.js和NPM | Typescript:节点解释器-设置所需的版本。