最近接触了Web3D引擎BabylonJS,引擎虽好但每次搭建TS的开发环境都十分繁琐,思来想去还是用批处理写个自动化的生产工具吧,一了百了。批处理以前没怎么用过,写的也是痛苦无比,而且不够灵活,虽然有大神告诉我可以写个简单的EXE来弄,但不会啊,这个留待后续研究吧,本着先实现在完善的想法,暂且先用批处理的凑活用吧。同时也把配置的步骤记录下。
环境要求:
平台:Windows,visual studio code(开发时用)
工具:Node.js 安装说明看这里
批处理工具:
把批处理工具放到一个空文件夹双击运行就可以了,环境搭建好后会运行一个示例工程,这就证明走通了,可以开发了。
批处理工具git地址
示例工程效果图:
配置步骤:
1.用vs code 打开一个空的文件夹在vs code终端中输入下面的命令生成package.json文件。
npm init -y
2.同样在vs code的终端中输入以下命令使用Node.js安装依赖项:typescript,webpack,ts-loader,webpack-cli
npm install --save-dev typescript webpack ts-loader webpack-cli
3.新建webpack.config.js文件并填写以下配置项index.ts是开发脚本,index.js是index.ts编译出来的js代码
const path = require("path");
module.exports = {
entry: './index.ts',
output: {
filename: 'index.js',
path: path.resolve(__dirname, 'dist')
},
resolve: {
extensions: [".ts"]
},
module: {
rules: [
{ test: /\.tsx?$/, loader: "ts-loader" }
]
},
mode: "development"
};
4.新建tsconfig.json文件
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"noResolve": false,
"noImplicitAny": false,
"removeComments": true,
"preserveConstEnums": true,
"sourceMap": true,
"experimentalDecorators": true,
"isolatedModules": false,
"lib": [
"dom",
"es2015.promise",
"es5"
],
"declaration": true,
"outDir": "./dist"
}
}
5.安装babylon.js
npm install --save babylonjs
6.新建html文件,命名index.html,它是网页的入口会调起编译出来的index.js脚本
<!DOCTYPE html>
<html>
<head>
<style>
html,
body {
overflow: hidden;
width: 100%;
height: 100%;
margin: 0;
padding: 0;
text-align: center;
}
#renderCanvas {
width: 100%;
height: 100%;
touch-action: none;
}
</style>
</head>
<body>
<canvas id="renderCanvas"></canvas>
<script src="dist/index.js"></script>
</body>
</html>
7.在根目录创建index.ts用来保存编写的ts代码
8.index.ts中导入BABYLON命名空间,以及可能会用到的变量
import * as BABYLON from 'babylonjs';
import { Engine, Scene, ArcRotateCamera, HemisphericLight, Vector3, MeshBuilder, Mesh } from "babylonjs";
9.在package.json的Script属性中添加build运行webpack,捆绑babylonjs文件,最终打包出来的js文件中将包含babylonjs引擎文件。
"scripts": {
"build": "webpack"
},
10.点击菜单栏终端->运行任务->npm:build 或者在终端中输入npm run build构建js工程。
npm run build