Я пытаюсь использовать веб-шторм с веб-пакетом и машинописью, и я застрял с проверкой ошибок. Я хочу скомпилировать ts файлы с помощью веб-пакета, поэтому мне нужно избегать компиляции исходных файлов через Webstorm, но кажется, что Webstorm выполняет проверку ошибок только во время процесса компиляции.

Соответствие документам веб-шторма «Разрешить объекты с помощью tsconfig.json» должно активировать проверку ошибок без компиляции, но это не так.

Пример кода, который Webstorm не выделяет

 { let z = 4;}
 console.log(z);

Мой файл tsconfig:

 {
  "compilerOptions": {
    "module": "commonjs",
    "out": "build/tsc.js",
    "target": "es5",
    "sourceMap": true,
    "jsx": "react"
  },
  "exclude": [
    "node_modules"
  ]
}

В то же время ошибки визуального отображения кода Visual Studio прекрасно. У меня есть ошибки в моих конфигах? Можно ли выделить ошибки, исправленные с помощью Webstorm или другой JetBrains IDE?

Машинопись версии 1.7, Webstorm 11.

4
Valery Kozlov 16 Дек 2015 в 20:33

3 ответа

Лучший ответ

Исходный ответ (устаревший - см. ОБНОВЛЕНИЕ ниже):

Как правильно заметил Валерий, вы можете установить для свойства noEmit значение true, чтобы компилятор не создавал выходные файлы.

Однако, если ваша установка Webpack использует тот же файл tsconfig.json, это также не даст Webpack создавать выходные файлы. Вы заметите это только при следующем перезапуске веб-пакета.

В моей настройке веб-пакета я использую загрузчик Typescript "ts-loader". Как упоминалось на странице gsub ts-загрузчика, вы можете переопределить параметры компилятора.

Итак, это моя установка:

tsconfig.json (используется IDE и Webpack)

"compilerOptions": {
    "noEmit": true, // do not emit js and map files
    ...

webpack.config.json (используется Webpack)

{
    test: /\.ts$/,
    loader: 'ts-loader',
    query: {
      'compilerOptions': {
        "noEmit": false // make sure js files do get emitted
      }
    },
    ...
}

Et voila: IDE-компилятор проверяет файлы js и js.map без загрязнения вашей папки с исходным кодом!

ОБНОВЛЕНИЕ: Мой ответ был верным обходным путем в январе, но сегодня лучшим решением является использование службы Typescript внутри Webstorm / IDEA, как предложено anstarovoyt.

Также не забудьте снять флажок «Включить компилятор TypeScript», как показано здесь:

enter image description here

6
CREOFF 21 Окт 2016 в 07:38

Я нашел способ предотвратить вывод компилятора с параметром tsconfig - noEmit.

{
  "compilerOptions": {
    "module": "commonjs",
    "noEmit": true,
    "target": "es5",
    "sourceMap": true,
    "jsx": "react"
  },
  "exclude": [
    "node_modules"
  ]
}

С этим конфигом у меня нет лишних файлов и исправление ошибок в веб-шторме.

1
Valery Kozlov 17 Дек 2015 в 09:03

WebStorm 2016.1 (и другие среды разработки IJ 2016.1) поддерживает параметр "compileOnSave". Пример:

{
  "compileOnSave": false,
  "compilerOptions": {
    "module": "commonjs"
  }
}


Обновление . WebStorm 2016.2 имеет новую интеграцию «службы TypeScript». Вам вообще не нужна интеграция TypeScript Complier. Просто отметьте опцию «Использовать службу TypeScript». Более того, новая интеграция работает намного быстрее.

Обновление 2 . Интеграция по умолчанию включена в WebStorm 2016.3.

Option 'Use TypeScript service'

5
anstarovoyt 20 Окт 2016 в 12:42