注册会员 登录
Project1 返回首页

判约之轮的个人空间 https://rpg.blue/?55246 [收藏] [复制] [分享] [RSS]

日志

ECMA6,nodejs,babel和webpack的二三事

已有 359 次阅读2016-10-1 22:32

不知道什么时候,ECMAScript 6标准居然已经发布了,虽然多了很多语法糖但是……
作为一个非常喜新厌旧的主还是去尝试了一下,多少增加了一些代码的安全性

在游戏窗口中按F8可以打开调试窗口,经过测试,RMMV使用的是Chrome的浏览器核心,以及搭载了nodejs语言功能的V8引擎
啊这真是个好消息,后端的nodejs和前端的js居然可以同时使用了
不过很遗憾,往游戏窗口直接插入js文件真是个很脑残的事情,原本的系统太精密了,不好从这个层面干涉
但是我又想用ESMA6的新语法写代码,怎么办呢?很简单,babel转换一下就是了,但这仅限于一个文件的插件,然而……
很多时候基于可读性和模块化的考量,nodejs工程都是嵌套很多层,每一层都有很多文件这样
这时候就要用到Webpack了,话不多说上配置:

//webpack.config.js
module.exports = {
// configuration
entry: "./index.js", //代表入口(总)文件,可以写多个
output: {
path: "./", //输出文件夹
filename: "index-webpack.js" //最终打包生成的文件名
},
module: {
loaders: [
{
test: /\.js|jsx$/, //是一个正则,代表js或者jsx后缀的文件要使用下面的loader
loader: "babel",
query: {
presets: ['es2015'],
plugins: [
"transform-es2015-modules-commonjs"
]
}
}
]
}
};

需要安装babel的transform-es2015-modules-commonjs插件,具体怎么安装可以百度
同理,webpack可以npm install webpack走起
把上面的js文件放在工程根目录,然后执行node .\node_modules\webpack\bin\webpack.js即可
别告诉我你看到这里还不知道nodejs是啥……

PS:webpack有一个小BUG,可能造成你的文件无法引用到游戏工程里去,打开.\node_modules\webpack\lib\MainTemplate.js,第19行改成buf.push("module.exports = " + this.renderRequireFunctionForModule(hash, chunk, "0") + "(0);");当然对于这个解决办法,我不保证持续的时效性

PS2:关于js文件引用的路径,是相对于游戏根目录下的index.html文件的路径,不要计算错了层数

鸡蛋

鲜花

评论 (0 个评论)

facelist doodle 涂鸦笔

您需要登录后才可以评论 登录 | 注册会员

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-4-19 11:22

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

返回顶部