Gulp라는 플러그인을 써서 PlayCanvas에서의 개발이 매우 편리해졌다
gulp-playcanvas
playcanvas-node
playcanvas-cli
와 3개의 라이브러리를 만들었다.gulp의plugin을 만들었기 때문에 그 식견을 공유할 수 있도록 허락해 주세요.문제
PlayCanvas를 사용할 때 신경 쓰이는 것은 첨부된 코드 편집기인 Lint가 낡았다는 것이다. 구체적으로 말하면
-const 사용하면 노랗게 돼요.
- 세미콜론 없이 빨간색 오류 발생
이런 상황이기 때문에 나는 자신의 편집자로 개발하고 싶다.
만든 플러그인
gulp-playcanvas
npm의 포장으로 공개되었습니다. 아래 명령으로 설치할 수 있습니다.
yarn add gulp-playcanvas
로컬 gulpfile.jswatch
, REST API를 사용하여 PlayCanvas에 전송된 콘텐츠를 업로드합니다.examples - hot-reload
gulpfile.js 파일
const gulp = require("gulp");
const playcanvas = require("gulp-playcanvas");
const pcOptions = require("./playcanvas.json");
const pug = require("gulp-pug");
const sass = require("gulp-sass");
gulp.task("pug", () => {
return gulp
.src(["src/**/*.pug", "!src/**/_*.pug"])
.pipe(pug())
.pipe(gulp.dest("dist/"))
.pipe(playcanvas(pcOptions));
});
gulp.task("js", () => {
return gulp
.src(["src/**/*.js", "!src/**/_*.js"])
.pipe(gulp.dest("dist/"))
.pipe(playcanvas(pcOptions));
});
gulp.task("sass", () => {
return gulp
.src("src/**/*.+(scss|sass)")
.pipe(sass())
.pipe(gulp.dest("dist/"))
.pipe(playcanvas(pcOptions));
});
gulp.task("watch", function() {
gulp.watch(["src/**/*.pug", "!src/**/_*.pug"], gulp.task("pug"));
gulp.watch(["src/**/*.js", "!src/**/_*.js"], gulp.task("js"));
gulp.watch("src/**/*.+(scss|sass)", gulp.task("sass"));
});
gulp.task("default", gulp.parallel("watch"));
패키지를 설치한 후 playcanvas.json
라는 설정 파일을 같은 디렉토리에 배치하고 yarn gulp
명령으로 객체 watch
를 모니터링하여 파일 내용이 변경될 때 동기화합니다.playcanvas.json
{
"accessToken": "",
"scenes": [],
"projectId": "",
"branchId": "",
"projectName": "",
"remotePath": ""
}
이동 결과
6월에 2D 게임을 만드는 애니메이션인데 그 자료를 만지면 HMR 동작이 나온다.x4배pic.twitter.com/vMHhrCkHkj - 예(@Mxcn3)2019년 5월 30일
Hot Reload+로컬
eslint + prettier
으로 개발할 수 있어서 상당히 편안해졌어요.p>미션은 4개의 동작이 있습니다.p>
1. 모니터링
코드 변경 watch 소스 코드 변경 감지 및 작업 수행
gulp.task("watch", function() {
gulp.watch(["src/**/*.pug", "!src/**/_*.pug"], gulp.task("pug"));
gulp.watch(["src/**/*.js", "!src/**/_*.js"], gulp.task("js"));
gulp.watch("src/**/*.+(scss|sass)", gulp.task("sass"));
});
이 부분아, pug
, js
, sass
변경이 있는 경우 각자의 임무를 수행한다p>
2. 구축 & 3.업로드
Pug 및 Sass 등을 HTML, CSS로 변환하고 REST API를 사용하여 구축된 코드 업로드
const pug = require("gulp-pug");
/*
gulp.task("pug", () => {
return gulp
.src(["src/**/*.pug", "!src/**/_*.pug"])
.pipe(pug())
.pipe(gulp.dest("dist/"))
------------自作のプラグインを実行------------------
.pipe(playcanvas(pcOptions));
------------自作のプラグインを実行--------------------
});
*/
https://github.com/yushimatenjin/gulp-playcanvas/blob/master/index.js#L1
Gulp 플러그인의 내용은 흐르는 파일 정보를 사용하여 업로드됩니다.
옵션의 제공 방법 등 참조gulp-ftpp>
const PlayCanvas = require("playcanvas-node").default;
const through = require("through2");
const gutil = require("gulp-util");
const path = require("path");
module.exports = options =>
through.obj(function(file, enc, callback) {
if (file.isNull()) {
return callback(null, file);
}
if (file.isStream()) {
return cb(
new gutil.PluginError("gulp-playcanvas", "Streaming not supported")
);
}
const playcanvas = new PlayCanvas(options);
playcanvas.updateAssets(
options.remotePath,
path.basename(file.path),
file.path
);
return callback(null, file);
});
첫 줄에서 자신이 만든 라이브러리playcanvas-node라는 라이브러리를 읽었는데, 이 라이브러리를 만들었기 때문에 API와의 대화를 간단하게 쓸 수 있어서 좋았고, REST API의 포장을 미리 적는 것이 좋았다p>
참조 링크
PlayCanvas.jp
PlayCanvas/Engine
playcanvas-node
playcanvas-gulp
Reference
이 문제에 관하여(Gulp라는 플러그인을 써서 PlayCanvas에서의 개발이 매우 편리해졌다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yushimatenjin/items/5f0f178e8a4ba4a5ee57텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)