内容基本参考 https://kurozael.github.io/typescript-pixi-gulp-tutorial/ ,有所修改。
安装 Node
从 node.js 官网 https://nodejs.org 下载并安装,不再赘述。
开始项目
随便在哪里建一个文件夹,就叫 demo
吧,然后在文件夹中打开终端,首先需要修改 npm 的源,不然速度会很慢。可以使用淘宝的数据源:
1
| npm config set registry https://registry.npm.taobao.org
|
然后输入npm init
启动项目即可。
安装依赖
首先安装 gulp: npm install -g gulp
安装完成后,使用 npm install --save <package name>
安装依赖包,由于我们用 ts 构建项目,推荐安装以下包:
- @types/node
- vinyl-source-stream
- vinyl-buffer
- gulp-typescript
- typescript
- browserify
- browser-sync
- fast-glob
- pixi.js
- fs
TS配置
在根目录建立一个 tsconfig.js 文件,内容如下:
1 2 3 4 5 6 7 8
| { "compilerOptions": { "target": "es6", "allowSyntheticDefaultImports": true, "esModuleInterop": true, "module": "commonjs", }, }
|
项目结构
在根目录创建 src, build, release 三个文件夹(也可以任意命名),分别存放 ts 源码文件,编译后的 js 文件,以及最终打包的文件。
配置gulp
在根目录创建 gulpfile.js 文件,填入以下内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| var gulp = require("gulp"); var tsc = require("gulp-typescript"); var fs = require("fs");
var project = tsc.createProject("tsconfig.json");
gulp.task("build", function(done) { var gameSrc = ["src/**/**.ts"]; var builder = gulp.src(gameSrc) .pipe(project()) .js .pipe(gulp.dest("build/")); return builder; });
var browserify = require("browserify"); var source = require("vinyl-source-stream"); var buffer = require("vinyl-buffer");
gulp.task("bundle", gulp.series("build", function(done) { var outputFolder = "release/"; var outputFileName = "js/app.js"; var mainTsFilePath = "build/main.js";
var bundler = browserify({ paths: ["./build"], debug: false, standalone: outputFileName });
var output = bundler.add(mainTsFilePath).bundle() .pipe(source(outputFileName)) .pipe(buffer()) .pipe(gulp.dest(outputFolder)); return output; }));
var browserSync = require("browser-sync");
gulp.task("serve", gulp.series("bundle", function(done) { var outputFolder = "release/"; browserSync.init({ server: { baseDir: outputFolder }, codeSync: false, online: true, cors: true }); done(); }));
|
然后就可以在根目录通过 gulp build
命令编译 src 中的 ts 文件;通过gulp bundle
打包编译后的 js 到 release 文件夹;通过gulp serve
开启本地服务器测试项目。(ps. bundle 命令会先执行 build, serve 命令会先执行 build 和 bundle)
开始写Demo
在 src 目录下新建一个ts文件 main.ts
;写入如下代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| import * as PIXI from 'pixi.js';
const app = new PIXI.Application({width: 1280, height: 720});
window.onload = () => { document.body.appendChild(app.view as HTMLCanvasElement); (<any>window).app = app; };
let t = new PIXI.Text('测试', { fontSize: 24, fill: 0x0x4caf50}); app.view.addChild(t);
|
保存后在终端执行 gulp serve
就可以看到效果了。