Как обеспечить флаг модуля в проекте VS2015?

Я создал новый файл .ts в веб-проекте, используя VS2015. В свойствах проекта под TypeScript Build я проверил модуль System = AMD.

Затем, пытаясь написать внешний модуль, я получаю следующую ошибку.

Невозможно скомпилировать модули, если не указан флаг "-module".

Где я могу указать флаг moduel?

Ответ 1

Кажется, это ошибка с окончательной версией VS2015. Параметры проекта TypeScript сохраняются некорректно в файле .csproj, поэтому компилятор TypeScript не читает их.

Чтобы исправить:

  • Щелкните правой кнопкой мыши проект, выгрузите его, затем щелкните правой кнопкой мыши и отредактируйте его.
  • Найдите <TypeScriptModuleKind>, а затем найдите родительский элемент, который следует называть <PropertyGroup>.
  • Найдите текст "Any CPU" в значении атрибута Condition, измените его на "AnyCPU" - то есть удалите пробел.
  • Повторите поиск и повторите изменение, если у вас есть параметры TypeScript для других условий сборки.

Обратите внимание, что до тех пор, пока эта ошибка не будет исправлена, вам нужно будет отредактировать файл .csproj, чтобы изменить настройки TypeScript. Если вы попытаетесь внести изменение из области параметров проекта, оно просто сгенерирует новые параметры в файле проекта с неправильным значением условия снова.

Кроме того, вы можете читать об использовании файла tsconfig.json вместо этого для предоставления настроек в VS2015. Однако кажется, что эта возможность в настоящее время реализована только для типа проекта веб-сайта, а не для проектов веб-приложений.

Ответ 2

Я не мог заставить его работать. Независимо от того, что я изменяю в разделе typescript - он игнорируется при сборке.

Если я устанавливаю многословие в Подробно в Инструменты- > Параметры- > Строить и запускаю, я вижу, что все мои настройки игнорируются, включая флаг -module.

Как обходной путь. Создайте файл tsconfig.json в корневом каталоге. И добавьте в команду pre-build события "tsc". В этом случае он работал нормально.

{
  "compilerOptions": {
    "module": "commonjs",
    "noImplicitAny": true,
    "removeComments": true,
    "preserveConstEnums": true,
    "sourceMap": true
  }
}

введите описание изображения здесь

Ответ 3

Вы обновили правильную настройку - у свойств проекта есть настройка для каждой конфигурации сборки, поэтому убедитесь, что вы также отметили "AMD" под каждой конфигурацией (например, Debug и Release).

Я часто поймаю это при переключении между конфигурациями.