npm install gulp
npm install gulp-typescript
npm install gulp-tslint
2. Создать файл Gulpfile.js с кодом
var gulp = require('gulp')
, typescript = require('gulp-typescript')
, typescriptLint = require('gulp-tslint');
// Lint all typescript files
gulp.task('typescript-lint', function () {
return gulp.src(['src/**/*.ts']).pipe(typescriptLint({configuration: 'tslint.json'}))
.pipe(typescriptLint.report('prose'));
});
// Build all typescript files
gulp.task('typescript-build', function () {
var typescriptResult = gulp.src(['src/**/*.ts']).pipe(typescript(typescript.createProject('tsconfig.json')));
return typescriptResult.js.pipe(gulp.dest('build'));
});
// Watch all typescript files for changes and rebuild everything
gulp.task('typescript-watch', function () {
gulp.watch(['src/**/*.ts'], [
'typescript-lint'
, 'typescript-build'
]);
});
// Default gulp task
gulp.task('default', [
'typescript-lint'
, 'typescript-build'
, 'typescript-watch'
]);
3. Создать файл rungulp.js с кодом
// Execute gulp task
var command = 'node ./node_modules/gulp/bin/gulp.js default'
, process = require('child_process').exec(command);
process.stdout.on('data', function(data) {console.log(data);});
process.stderr.on('data', function(data) {console.log(data);});
process.on('close', function(code) {if (code === 0) {console.log('Done');} else {console.log('Exit code: ' + code);}});
4. Создать файл tsconfig.json с кодом
{
"compilerOptions": {
"declaration": false
, "emitDecoratorMetadata": false
, "experimentalDecorators": false
, "inlineSourceMap": false
, "inlineSources": false
, "isolatedModules": false
, "mapRoot": ""
, "module": "amd"
, "newLine": "CRLF"
, "noEmit": false
, "noEmitHelpers": true
, "noImplicitAny": true
, "noResolve": true
, "outFile": "final.js"
, "preserveConstEnums": false
, "removeComments": false
, "sourceMap": false
, "sourceRoot": ""
, "suppressImplicitAnyIndexErrors": false
, "target": "es3"
}
}
5. Создать файл tsling.json с кодом
{
"rules": {
"ban": false
, "class-name": true
, "comment-format": [true, "check-space"]
, "curly": true
, "eofline": false
, "forin": true
, "indent": [true, "spaces"]
, "jsdoc-format": true
, "label-position": true
, "label-undefined": true
, "max-line-length": [true, 500]
, "member-access": true
, "member-ordering": [
true
, "public-before-private"
, "static-before-instance"
, "variables-before-functions"
]
, "no-any": true
, "no-arg": true
, "no-bitwise": true
, "no-console": [
true
, "debug"
, "info"
, "time"
, "timeEnd"
, "trace"
]
, "no-consecutive-blank-lines": true
, "no-construct": true
, "no-constructor-vars": true
, "no-debugger": false
, "no-duplicate-key": true
, "no-duplicate-variable": true
, "no-empty": true
, "no-eval": true
, "no-internal-module": true
, "no-string-literal": false
, "no-trailing-comma": true
, "no-trailing-whitespace": true
, "no-unreachable": true
, "no-unused-expression": true
, "no-unused-variable": true
, "no-use-before-declare": true
, "one-line": [
true
, "check-open-brace"
, "check-catch"
, "check-else"
, "check-whitespace"
]
, "quotemark": [true, "single"]
, "radix": true
, "semicolon": true
, "switch-default": true
, "triple-equals": [true, "allow-null-check"]
, "typedef": [
true
, "call-signature"
, "parameter"
, "property"
, "variable-declaration"
, "member-variable-declarations"
]
, "typedef-whitespace": [
true
, {
"call-signature": "nospace"
, "index-signature": "nospace"
, "parameter": "nospace"
, "property-declaration": "nospace"
, "variable-declaration": "nospace"
}
]
, "variable-name": false
, "whitespace": [
true
, "check-branch"
, "check-decl"
, "check-module"
, "check-operator"
, "check-separator"
]
}
}
6. Поместить исходные TypeScript-файлы в папку src
src/module-1.ts
src/module-2.ts
7. Скомпилировать TypeScript-файлы в JavaScript-файлы командой
node rungulp.js
Комментариев нет:
Отправить комментарий