mirror of
https://github.com/nestjs/nest.git
synced 2026-02-21 23:11:44 +00:00
npm has command `npm ln` which allow using link to local lib, in this case, if you want to use the ability to debug ts sources. you can run `gulp build:dev -dist lib` and lib dirs will contain ts & source maps which allow effectively debug external apps together with nestJS framework
102 lines
2.9 KiB
JavaScript
102 lines
2.9 KiB
JavaScript
const gulp = require('gulp');
|
|
const ts = require('gulp-typescript');
|
|
const gulpSequence = require('gulp-sequence');
|
|
const sourcemaps = require('gulp-sourcemaps');
|
|
const clean = require('gulp-clean');
|
|
|
|
const packages = {
|
|
common: ts.createProject('src/common/tsconfig.json'),
|
|
core: ts.createProject('src/core/tsconfig.json'),
|
|
microservices: ts.createProject('src/microservices/tsconfig.json'),
|
|
websockets: ts.createProject('src/websockets/tsconfig.json'),
|
|
testing: ts.createProject('src/testing/tsconfig.json'),
|
|
};
|
|
const modules = Object.keys(packages);
|
|
const source = 'src';
|
|
const distId = process.argv.indexOf('--dist');
|
|
const dist = distId < 0 ? 'node_modules/@nestjs' : process.argv[distId + 1];
|
|
|
|
gulp.task('default', function() {
|
|
modules.forEach(module => {
|
|
gulp.watch(
|
|
[`${source}/${module}/**/*.ts`, `${source}/${module}/*.ts`],
|
|
[module]
|
|
);
|
|
});
|
|
});
|
|
|
|
gulp.task('copy:ts', function(){
|
|
return gulp.src(['src/**/*.ts'])
|
|
.pipe(gulp.dest('./lib'));
|
|
});
|
|
|
|
gulp.task('clean:lib', function(){
|
|
return gulp.src([
|
|
'lib/**/*.js.map',
|
|
'lib/**/*.ts',
|
|
'!lib/**/*.d.ts'
|
|
], {read: false})
|
|
.pipe(clean());
|
|
});
|
|
|
|
modules.forEach(module => {
|
|
gulp.task(module, () => {
|
|
return packages[module]
|
|
.src()
|
|
.pipe(packages[module]())
|
|
.pipe(gulp.dest(`${dist}/${module}`));
|
|
});
|
|
});
|
|
|
|
modules.forEach(module => {
|
|
gulp.task(module + ':dev', () => {
|
|
return packages[module]
|
|
.src()
|
|
.pipe(sourcemaps.init())
|
|
.pipe(packages[module]())
|
|
.pipe(sourcemaps.mapSources(sourcePath => './' + sourcePath.split('/').pop()))
|
|
.pipe(sourcemaps.write('.'))
|
|
.pipe(gulp.dest(`${dist}/${module}`));
|
|
});
|
|
});
|
|
|
|
gulp.task('build', function(cb) {
|
|
gulpSequence('common', modules.filter((module) => module !== 'common'), cb);
|
|
});
|
|
|
|
gulp.task('build:dev', function(cb) {
|
|
gulpSequence(
|
|
'common:dev',
|
|
modules.filter((module) => module !== 'common').map((module) => module + ':dev'),
|
|
'copy:ts',
|
|
cb);
|
|
});
|
|
|
|
gulp.task('move', function() {
|
|
gulp.src(['node_modules/@nestjs/**/*']).pipe(
|
|
gulp.dest('examples/01-cats-app/node_modules/@nestjs')
|
|
).pipe(
|
|
gulp.dest('examples/02-gateways/node_modules/@nestjs')
|
|
).pipe(
|
|
gulp.dest('examples/03-microservices/node_modules/@nestjs')
|
|
).pipe(
|
|
gulp.dest('examples/04-injector/node_modules/@nestjs')
|
|
).pipe(
|
|
gulp.dest('examples/05-sql-typeorm/node_modules/@nestjs')
|
|
).pipe(
|
|
gulp.dest('examples/06-mongoose/node_modules/@nestjs')
|
|
).pipe(
|
|
gulp.dest('examples/07-sequelize/node_modules/@nestjs')
|
|
).pipe(
|
|
gulp.dest('examples/08-passport/node_modules/@nestjs')
|
|
).pipe(
|
|
gulp.dest('examples/09-babel-example/node_modules/@nestjs')
|
|
).pipe(
|
|
gulp.dest('examples/11-swagger/node_modules/@nestjs')
|
|
).pipe(
|
|
gulp.dest('examples/12-graphql-apollo/node_modules/@nestjs')
|
|
).pipe(
|
|
gulp.dest('examples/15-mvc/node_modules/@nestjs')
|
|
);
|
|
});
|