检测node环境
node --version
npm --version
npx --version
创建bin文件夹
.js, .min.js, .d.ts 输出目录
创建src文件夹
ts项目源码目录
在项目目录下创建 package.json 文件
npm init
配置发布者的信息 和 包声明
npm安装gulp
npm install --global gulp-cli
创建gulpfile.js脚本文件
'use strict';
const gulp = require("gulp");
const minify = require('gulp-minify');
const inject = require("gulp-inject-string");
const ts = require('gulp-typescript');
const merge = require('merge2');
const tsProject = ts.createProject('tsconfig.json');
gulp.task('buildJs', () => {
return tsProject.src()
.pipe(tsProject())
.js.pipe(inject.replace('var es;', ''))
.pipe(inject.prepend('window.es = {};\n'))
.pipe(inject.replace('var __extends =', 'window.__extends ='))
.pipe(minify({ ext: { min: ".min.js" } }))
.pipe(gulp.dest('./bin'));
});
gulp.task("buildDts", ["buildJs"], () => {
return tsProject.src()
.pipe(tsProject())
// .dts.pipe(inject.append('import e = framework;'))
.pipe(gulp.dest('./bin'));
});
gulp.task("copy", ["buildDts"], () => {
return gulp.src('bin/**/*')
.pipe(gulp.dest('../demo/egret_demo/libs/framework/'))
.pipe(gulp.dest('../extensions/behaviourTree-ai/egret-demo/libs/framework/'))
});
gulp.task('build', ['copy'], () => {
return merge([
gulp.src('bin/*.js')
.pipe(gulp.dest('../demo/laya_demo/bin/libs/')),
gulp.src('bin/*.ts')
.pipe(gulp.dest('../demo/laya_demo/libs/')),
gulp.src('bin/framework.d.ts')
.pipe(gulp.dest('../extensions/behaviourTree-ai/source/lib/'))
.pipe(gulp.dest('../extensions/ecs-star/lib/'))
.pipe(gulp.dest('../extensions/ecs-tween/lib/'))
])
});
build
gulp build
Description
gulp官网