TypeScript+webpack으로 Processing(p5.js) 환경 구축
15476 단어 p5.jsprocessingwebpackTypeScript
소개
p5.js는 JavaScript로 구현된 Processing입니다. 프로그램을 작성하는 것도 당연히 자바 스크립트입니다. 웹 브라우저에서 실행할 수 있는 것이 장점입니다.
약간의 제네레티브 아트 프로그램을 쓰는 경우는 JavaScript 그대로도 괜찮습니다만, 게임을 만드는 경우에 대규모 프로그램이 되면, 타입을 원합니다.
본 기사에서는, TypeScript로 Processing 프로그래밍을 하는 환경의 구축 순서를 소개합니다.
우선 환경을 얻고 싶다면
TypeScript에서 p5.js를 작성하는 환경을 우선 얻고 싶다면 다음과 같이 진행됩니다.
$ git clone [email protected]:memememomo/ts-p5js-template.git
$ cd ts-p5js-template
$ yarn
$ yarn watch
브라우저가 자동으로 시작되고 다음과 같은 그림이 표시된다고 생각합니다 (그렇지 않으면 다시로드하십시오).
그런 다음
src/main.ts
를 편집하기 만하면됩니다.이후는, 스크래치로 환경을 준비하는 순서와 각종 설정의 해설이 됩니다.
yarn 설치
패키지 관리로 yarn을 이용합니다. Homebrew를 이용하여 설치합니다.
yarn 설치
$ brew install yarn
프로젝트 디렉토리 만들기
프로젝트 디렉토리를 만듭니다.
$ mkdir ts-p5js-template
$ cd ts-p5js-template
package.json 생성 및 필수 모듈 설치
yarn 명령을 사용하여 다양한 필수 파일을 생성합니다.
$ yarn init -y # package.json
yarn 명령을 사용하여 필요한 모듈을 설치합니다.
$ yarn add webpack --dev # webpackの本体
$ yarn add webpack-cli --dev # webpackコマンド
$ yarn add typescript --dev # TypeScript
$ yarn add ts-loader --dev # webpack用のTypeScriptローダー
$ yarn add @types/p5 --dev # p5.jsの型ファイル
$ yarn add concurrently --dev # 複数のコマンドを同時実行
$ yarn add browser-sync --dev # ファイル変更監視とブラウザリロード
TypeScript 구성 파일 (tsconfig.json) 만들기
TypeScript 재입문 - "최고의 TypeScript"로 JavaScript를 "부드러운"정적 형식 언어로
htps : // 에 mpぉ y 면 t. 엔 - 그럼. 코m/엔기네 r후 b/엔트리/2019/04/16/103000
위의 페이지를 참고로 설정합니다.
tsconfig.json
{
"compilerOptions": {
"sourceMap": true,
// TSはECMAScript5に変換
"target": "es5",
// TSのモジュールはES Modulesとして出力
"module": "es2015",
// node_modulesからライブラリを読み込む
"moduleResolution": "node",
// 暗黙的なanyを許可する(頑張らない)
"noImplicitAny": false,
// コメントは削除しない
"removeComments": false,
// コンパイルターゲットがES5時にfor-of文を使えるようにする
"downlevelIteration": true
}
}
p5.js 용 형식 파일 만들기 (global.d.ts)
p5.js에 대한 형식 파일을 만듭니다.
global.d.ts
import module = require('p5');
import * as p5Global from 'p5/global'
export = module;
export as namespace p5;
declare global {
interface Window {
p5: typeof module,
}
}
webpack 용 구성 파일 만들기 (webpack.config.js)
webpack에 대한 구성 파일을 만듭니다.
webpack.config.js
const path = require('path');
module.exports = {
// production の場合、最適化された状態で出力される
// development の場合、ソースマップが有効でJSファイルが出力される
mode: 'development',
// エントリーポイント
entry: './src/main.ts',
module: {
rules: [
{
// 拡張子 .ts の場合
test: /\.ts$/,
// TypeScript をコンパイルする
use: "ts-loader"
}
]
},
// import 文で .ts ファイルを解決する
resolve: {
modules: [
"node_modules"
],
extensions: [".ts", ".js"]
}
};
package.json에 작업 설정
package.json에
scripts
를 추가하여 작업을 설정합니다. webpack에 의한 빌드 명령을 설정하고 있습니다.package.json
{
...
"scripts": {
"build": "webpack",
"watch": "concurrently \"browser-sync start --server -w\" \" webpack --watch\""
},
...
}
이제
yarn build
와 같은 작업을 수행할 수 있습니다.HTML 및 TS 파일 만들기
src/main.ts
import * as p5 from 'p5';
const sketch = (p: p5) => {
p.preload = () => {
};
p.setup = () => {
p.resizeCanvas(p.windowWidth, p.windowHeight);
};
p.windowResized = () => {
p.resizeCanvas(p.windowWidth, p.windowHeight);
};
p.draw = () => {
p.background(100);
p.ellipse(100, 150, 180, 60);
}
};
const sketchP = new p5(sketch);
index.html
<html>
<head>
<script src="dist/main.js"></script>
<link rel="shortcut icon" href="https://p5js.org/assets/img/favicon.ico">
<link rel="icon" href="https://p5js.org/assets/img/favicon.ico">
<style>
* {
padding: 0px;
margin: 0px;
}
</style>
<script>
</script>
</head>
<body>
</body>
</html>
실행
다음 명령을 실행하면 브라우저가 시작됩니다.
$ yarn watch
아래와 같은 그림이 표시된다고 생각합니다. (표시되지 않으면 다시로드하십시오.)
src/main.ts
를 편집하면 변경 내용이 자동으로 감지되고 브라우저가 다시로드됩니다.이상으로 TypeScript로 Processing을 쓰는 환경이 완성되었습니다.
요약
TypeScript + webpack으로 Proessing을 작성하는 환경을 구축했습니다. 이것일 정도의 규모의 게임 제작에서도 쾌적하게 실시할 수 있을까 생각합니다.
참고 링크
최신판 TypeScript 3.0+webpack 4의 환경 구축 정리(React, Vue.js, Three.js의 샘플 첨부)
htps // // cs. 메아아/엔트리/16329
webpack 4 입문
htps : // 이 m/소아 rfぁt/있어 ms/28bf799f7에0335b68186
p5-typescript-starter
htps : // 기주 b. 이 m / gau ph / p5-ty 페스코 pts-r r
Reference
이 문제에 관하여(TypeScript+webpack으로 Processing(p5.js) 환경 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/uchiko/items/744d7559d37973a959ea텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)