2016-01-11 4 views
1

Возможно, это было задано раньше, если я прошу прощения за дублирующийся пост, просто перенаправив меня в другой поток.Как сконфигурировать «tasks.json» VS Code для создания всех файлов .ts

Можно ли настроить «tasks.json» VS Кодекса в собрать все .ts файлы в папке. Я знаю, что могу добавить путь к ts-файл вручную, как это:

"args": [ HelloWorld.ts ], 

и он делает правильно скомпилировать HelloWorld.ts, но я не могу понять, как настроить tasks.json, что all.ts файлы папка скомпилирована.

Я рассмотрел несколько руководств, которые все предлагают просто удалить «HelloWorld.ts», но это не работает, поскольку файлы .ts не скомпилированы вообще.

Вот весь файл tasks.json, что я имею в VS Код:

{ 
    "version": "0.1.0", 

    // The command is tsc. Assumes that tsc has been installed using npm install -g typescript 
    "command": "tsc", 

    // The command is a shell script 
    "isShellCommand": true, 

    // Show the output window only if unrecognized errors occur. 
    "showOutput": "always", 

    // args is the HelloWorld program to compile. 
    "args": [ "HelloWorld.ts" ], 

    // use the standard tsc problem matcher to find compile problems 
    // in the output. 
    "problemMatcher": "$tsc" 
} 
+0

Я боюсь, что я не моя полной среды проекта со мной, но я знаю, что я был в состоянии сделать это с файлом «tsconfig.json» и указывая TSC только в папку, содержащую его, с аргументом «-p». Код VS может помочь вам заполнить различные параметры tsconfig.json. – Katana314

ответ

0

Как @mishap сказал, но то, что его ответ не хватал, что там должна быть пустым пространство для «аргументов», как так:

"args": [ ] 

, а не:

"args": [] 

как те арги передаются на cmd/terminal, выполняющий tsc, важно, чтобы в «args» задач tasks.json было пространство «».

0

Сделайте _all.ts файл, добавлять ссылки всех файлов, которые вы хотите, чтобы собрать и передать его в параметре ARGS ,

Он выведет один файл, содержащий весь переданный код.

Я надеюсь, что это помогает

+1

Действительно, это «сделало бы» трюк для компиляции всего кода ts в js-код, но после этого он заставит меня ссылаться на один файл .js в моем html, который вроде бы упустил бы идею «разделения беспокойства». –

1

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

Сначала вы должны настроить tsconfig.json для своего проекта, где вы сможете исключить ненужные файлы. Мне легче исключить то, что вам не нужно, чем включать то, что нужно. Это особенно актуально для крупных проектов.

{ 
    "compilerOptions": { 
     "emitDecoratorMetadata": true, 
     "experimentalDecorators": true, 
     "module": "commonjs", 
     "target": "es5", 
     "sourceMap": true, 
     "outDir": "dist", 
     "declaration": true 
    }, 
    "exclude": [ 
     "node_modules", 
     "dist", 
     ".vscode", 
     "docs" 
    ] 
} 

Это как ваш tasks.json может выглядеть следующим образом:

{ 
    "version": "0.1.0", 
    "command": "node", 
    "windows": { 
     "command": "node.exe" 
    }, 
    "isShellCommand": true, 
    "tasks": [ 
     { 
      "taskName": "build-debug", 
      "args": ["${workspaceRoot}/node_modules/gulp/bin/gulp.js", "build-debug"], 
      "isBuildCommand": true, 
      "suppressTaskName": true, 
      "problemMatcher": [ 
       "$tsc" 
      ] 
     } 
    ] 
} 

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

А вот образец gulpfile.js:

"use strict"; 

var gulp = require('gulp'); 
var ts = require('gulp-typescript'); 
var merge = require('merge2'); 
var sourcemaps = require('gulp-sourcemaps'); 
var del = require('del'); 

var tsProject = ts.createProject('tsconfig.json'); 

gulp.task('build-debug', function() { 
    del.sync("dist"); 

    var tsResult = tsProject.src() 
     .pipe(sourcemaps.init()) 
    .pipe(ts(tsProject)); 

    return merge([ 
     //Build typescript to dist folder 
     // tsResult.dts 
     //  .pipe(gulp.dest('dist')), 
     tsResult.js 
      .pipe(sourcemaps.write("./", { sourceRoot: __dirname })) 
      .pipe(gulp.dest('dist')), 
}); 

И не забудьте добавить соответствующий зависимости Dev вашего package.json:

"devDependencies": { 
    "gulp": "latest", 
    "gulp-typescript": "latest", 
    "gulp-sourcemaps": "latest", 
    "merge2": "latest", 
    "del": "latest" 
    } 

Надеется, что это помогает.

3

В вашем tasks.json удалить содержимое квадратных скобок для «аргументов» ключевых:

"args": [] 

Убедитесь, что вы имеете файл tsconfig.json на месте тоже. Это успешно скомпилирует все файлы .ts для меня.

0

Вместо того, чтобы полностью удалить арги, это сработало для меня.

"args": ["-p", "${workspaceRoot}"] 

Есть куча предопределенных переменных, которые вы можете использовать, которые будут заменены во время выполнения. Это на этой странице для получения дополнительной информации: https://code.visualstudio.com/docs/editor/tasks#_variable-substitution

+0

Не могли бы вы быть более подробными? Вставка ряда кода не помогает никому. –

+0

Спасибо @fallenidol, это решило мою проблему. – TheSoul

0
--========================== 
    - VS Code - Setup TypeScript Compiler 
    - source : https://code.visualstudio.com/Docs/languages/typescript 
--========================== 
1/ create a file "tsconfig.json" 

     { 
      "compilerOptions": { 
       "target": "es5", 
       "module": "commonjs", 
       "sourceMap": true 
      } 
     } 

2/ Create tasks.json : 
    - Ctrl+Shift+P ==> Configure Task Runner 
    - Select TypeScript - tsconfig.json. 
    { 
     // See http://go.microsoft.com/fwlink/?LinkId=733558 
     // for the documentation about the tasks.json format 
     "version": "0.1.0", 
     "command": "tsc", 
     "isShellCommand": true, 
     "args": ["-p", "."], 
     "showOutput": "silent", 
     "problemMatcher": "$tsc" 
    } 

3/ Run the Build Task : Ctrl+Shift+B (Run Build Task) 
Смежные вопросы