2016-02-16 12 views
2

Я работаю с проектом машинописи с помощью шаблона ASP.NET 5 в VS.NET 2015. Я добавил scripts/tsconfig.json файл и содержит следующую exclude раздела по умолчанию:Зачем исключать wwwroot из tsconfig?

"exclude": [ 
    "node_modules", 
    "wwwroot" 
    ] 

Однако проходящим через учебники я «ве также видели, что я должен настроить вывод машинопись сборки в следующем каталоге:

"outDir": "../wwwroot" 

Заявив определение exclude от официального TypeScript wiki:

Если указано свойство «exclude», то компилятор включает в себя все файлы TypeScript (* .ts или * .tsx) в каталоге-каталоге и подкаталоги, за исключением тех файлов или папок, которые исключены.

Моей путаница, так как файл tsconfig.json применяет параметры для виртуального проекта машинописи в папке, где он находится, и шахта находится в папке /scripts, нужно ли мне, что установка? Почему я должен исключить wwwroot и почему эта настройка была добавлена ​​автоматически? Я не планирую иметь папку wwwroot в моей папке /scripts, поэтому я пытаюсь понять, почему ее следует исключить? Или он добавляется по умолчанию, так как я мог бы добавить мою папку tsconfig.json в корень моего проекта, и в этом случае вы хотели бы исключить папку wwwroot?

ответ

0

Тип скриптового компилятора выполняет поиск файлов типов (ввода) и скомпилирует их в каждой папке. С помощью exclude вы сообщаете компилятору, чтобы он не искал папку wwwroot для (ввода) машинописных файлов. outDir скажите составителю машинописных файлов на вывод скомпилированных файлов на wwwroot. Затем ваши скомпилированные файлы могут быть отправлены клиенту.

1

wwwroot dir предназначен для выходных файлов. В типичном веб-проекте ASP.NET 5 ваши файлы * .js/*. Css будут скомпилированы из * .ts и * .less/*. Sass. Эти исходные файлы являются частью вашего проекта и кода, над которым вы работаете.

При создании, изменении или публикации вы компилируете в ie * .js, объедините их в один файл, например, и уменьшите (aka uglify), затем скопируйте их в папку в wwwroot, а также все статические файлы вашей сети проект.

С exclude: "wwwroot" вы указываете, что вы не должны искать там файлы * .less/*. Sass/*. Ts, поскольку они не должны находиться там.

+0

Если какие-либо файлы '.ts' были в' wwwroot', не сделал бы это какой-то круговой беспорядок? Результат пытается создать файлы '.ts', но они будут исключены из поиска в этой папке, чтобы он ничего не делал? – atconway

+0

Речь идет не только о js. в новых файлах .xproj нет понятия включенных/экслюзированных файлов, таких как .csproj. В .csproj вы явно должны были включить файл cs в проект, чтобы он был скомпилирован (если файл добавлен через VS, это произошло автоматически). в .xproj все файлы включены по умолчанию (падение файла в структуре папок исследователей и его доступность в VS), поэтому нам нужно исключить возможность исключения определенных папок из компиляции (например, 'node_modules',' bower_components', поскольку они содержат пакеты , а не наш собственный код. – Tseng

+0

Для 'wwwroot' это всегда так, так как это общая папка, содержащая только скомпилированные (css, js) или статические некодовые файлы (изображения) – Tseng