Ошибка Typescript " не удается записать файл ... потому что он перезапишет входной файл."

в моем проекте Typescript 2.2.1 в Visual Studio 2015 Update 3 я получаю сотни ошибок в списке ошибок, например:

не удается записать файл ' C:/{{my-project}}/node_modules/buffer-shims / index.js', потому что он перезапишет входной файл.

это выглядит так все время. На самом деле это не мешает строительству, и все работает нормально, но список ошибок отвлекает и трудно найти "реальные" ошибки, когда они происходить.

visual studio error list

вот мой

{
  "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"]
}

Как я могу избавиться от всех этих ошибок?

3 ответов


У меня такая же проблема. В моем случае это был результат вариант: allowJs: true.

поэтому мне пришлось удалить эту строку, чтобы избавиться от ошибок. Я не вижу в вашем коде, но, возможно, это поможет вам здесь.

удачи!


в моем случае я использовал outFile опция, но не исключая целевой каталог из входных данных.

// Bad
{
    "compileOnSave": true,
    "compilerOptions": {
        "outDir": "./built",
        "allowJs": true,
        "target": "es5",
        "allowUnreachableCode": false,
        "noImplicitReturns": true,
        "noImplicitAny": true,
        "typeRoots": [ "./typings" ],
        "outFile": "./built/combined.js"
    },
    "include": [
        "./**/*"
    ],
    "exclude": [
        "./plugins/**/*",
        "./typings/**/*"
    ]
}

все, что нам нужно сделать, это исключить лакомства в outDir:

// Good
{
    "compileOnSave": true,
    "compilerOptions": {
        "outDir": "./built",
        "allowJs": true,
        "target": "es5",
        "allowUnreachableCode": false,
        "noImplicitReturns": true,
        "noImplicitAny": true,
        "typeRoots": [ "./typings" ],
        "outFile": "./built/combined.js"
    },
    "include": [
        "./**/*"
    ],
    "exclude": [
        "./plugins/**/*",
        "./typings/**/*",
        "./built/**/*" // This is what fixed it!
    ]
}

похоже, что эта проблема была исправлена для меня путем обновления до Typescript 2.3.x

кроме того, использование Visual Studio 2017 также было большим улучшением. Я настоятельно рекомендую вам сделать и из этих обновлений, хотя.