fengari-loader Webpack Lua加载器
Webpack 的 Lua 脚本加载器里,fengari-loader是个还挺的存在。它不是直接跑 Lua 的,而是基于fengari——一个用 JavaScript 写的 Lua 虚拟机。你可以把 Lua 脚本当模块一样引入,就像你写import mycode from './mycode.lua'
一样自然。
安装其实也不复杂,用npm install fengari-loader fengari-web webpack-cli --save-dev
就能搞定。注意哦,fengari-loader
跟fengari-web
还有webpack
是peerDependency,你得自己指定版本,版本控制更灵活。
用起来也挺轻松。比如你有个src/mycode.lua
,内容写:
return { 42 }
,你在src/index.js
里写:import mycode from './mycode.lua';
console.log(mycode[1]); // 输出 42
是不是比起其他方式更直接?
如果你有 Webpack 经验,又刚好在搞 Lua 和 JS 的混合项目,那这个 Loader 确实蛮值得一试。fengari跑在浏览器里也挺稳,响应也快,拿来做小游戏、小工具甚至前端配置都还不错。
要注意的是,它更适合偏工程化的场景,对 Lua VM 不熟的话,建议先看看Webpack 源码之 loader 机制这篇文章,理解下 Webpack Loader 怎么非 JS 资源。
另外,和它类似的 Loader 还有不少,比如Babel Loader、SWC-Loader这种搞 JS 编译的,还有一些更小众的像Dogescript-Loader。用哪个看你项目需要。
如果你经常在 Webpack 里搞非主流语言或者想在前端引入 Lua 逻辑,fengari-loader确实值得收藏一手。
fengari-loader-master.zip
预估大小:14个文件
fengari-loader-master
文件夹
.travis.yml
462B
package.json
2KB
test
文件夹
analyse_requires.test.js
2KB
.babelrc
95B
compiler.js
618B
example.lua
41B
loader.test.js
1KB
LICENSE
1KB
96.09KB
文件大小:
评论区