veydlin
@veydlin
Мне никогда не жалко средств на свое любопытство

Как добавить web проект в VS?

Есть проект самописной системы на PHP, в нем используется TypeScript и Less, их надо компилировать
Для Less я установил Web Compiler

Создаю новый проект TypeScript , но не могу добавить туда полностью проект на PHP, добавляются только файлы корневого каталога, как быть?
И если есть другие решения проблемы, то буду рад выслушать (кроме смены IDE)
  • Вопрос задан
  • 177 просмотров
Решения вопроса 1
AlekseyNemiro
@AlekseyNemiro
full-stack developer
добавляются только файлы корневого каталога

Не совсем понял, о чем речь. Возможно, в Visual Studio 2015, если делать вставку из проводника, файлы могут не включаться в решение, будут добавлены только каталоги. Их придется включать вручную. Для этого нужно включить показ всех файлов:

89d8e00e769e41808eab50484b01860e.png
И затем выбрать недостающие файлы и папки и включить их в проект через контекстное меню:

110986bb5b81446e980dce674c107b4f.png

В Visual Studio для PHP я использую PHP Tools for VS.

С TypeScript в рамках Visual Studio проект PHP дружить так и не захотел.

Самое простое решение - сделать отдельный проект для TypeScript (в рамках одного решения).

В bundleconfig.json (BundlerMinifier) можно прописать вывод собранных файлов в любую папку, в том числе в папку с проектом PHP.

Вот тут можно посмотреть пример, как это может быть.

460884d980314ab4902ecdd101ad5888.png
Структура решения:
/Решение
-- FrontEndScripts - проект TypeScript
-- SmallServerAdmin - проект PHP, в который, помимо прочего, собираться клиентский код

bundleconfig.json
[
  {
    "includeInProject": false,
    // вывод js делаем в проект SmallServerAdmin
    "outputFileName": "../SmallServerAdmin/Content/compiled.js",
    "inputFiles": [
      // файлы, которые должны входить итоговую в сборку
      "libs/jquery-1.11.2.js",
      "libs/jquery-ui.min.js",
      "libs/jquery.json.min.js",
      "libs/jquery.caret.min.js"
      // ...
    ]
  }
]


TypeScript компилируется в JavaScript в тоже место, где находятся файлы TypeScript. Каждый файл прописывается в bundleconfig.json. Затем все это собирается в итоговый файл /SmallServerAdmin/Content/compiled.js.

Плохое, но простое решение.

Еще можно попробовать в настройках проекта TypeScript (Проект -> Свойства проекта) указать параметры сборки и папку вывода (путь может быть относительным).

ae17a55c4ba748fb9eb97d8974479ee9.png
Если оставаться в рамках одного проекта, то можно попробовать сделать файл конфигурации TypeScript в корне проекта: tsconfig.json. Возможно он будет использован, но в проектах отличных от TypeScript я этого не проверял и не могу точно сказать, как это будет работать.

{
  "compilerOptions": {
    "outDir": "./куда делать вывод компилированных файлов",
    "sourceMap": false,
    "noImplicitAny": true,
    "module": "CommonJS",
    "target": "es5"
  },
  "files": [
    // файлы проекта
    "./init.ts"
  ]
}


С WebPack можно сделать больше, но это будет существенно сложнее. Пример решения (TypeScript + PHP) можно тут посмотреть.

Для WebPack потребуется:

  • Node.js
  • Webpack Task Runner
  • NPM Scripts Task Runner

Управление сборкой TypeScript можно оставить студии, это проще всего. А все остальное прописывается в webpack.config.js. Но все может быть очень сложно, на получение оптимальной конфигурации можно угрохать пару десятков часов :-)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы