node
模块有一个名为compile
的方法,它编译代码并创建.lc文件。
我是否使用像nodemcu-tool
这样的工具通过terminal
参数连接到电路板,并执行node.compile('myfile.lua')
命令来创建.lc
文件?
如果init.lua
在重置时被编译为init.lc
,那么董事会会执行编译后的代码吗?
如果
init.lua
在重置时被编译为init.lc
,那么董事会会执行编译后的代码吗?
是的,根据我们的FAQ
请注意,如果您使用
require("XXX")
加载代码,那么这将自动搜索XXX.lc
然后XXX.lua
,因此您不需要包含条件逻辑来加载字节码版本(如果存在),否则将回退到源版本。
但是,请注意,您的init.lua
预计会相当小,实际应用程序会分成动态加载的单独文件。
(如何)我是否使用像
nodemcu-tool
这样的工具通过terminal
参数连接到电路板,并执行node.compile('myfile.lua')
命令来创建.lc
文件?
$ nodemcu-tool upload --port=/dev/ttyUSB0 myfile.lua --compile
你如何在ESP8266板上编译lua代码?
这取决于您使用的工具。我使用的工作流程是:
nodemcu-uploader
将Lua代码上传到NodeMCUpicocom
连接到NodeMCUnode.compile()
编译文件nodemcu-uploader
再次下载文件不同的工具可能会稍微改变所涉及的步骤,但总体而言,这个想法将保持不变:
上传 - >编译( - >下载)
如果在复位时init.lua被编译为init.lc,那么板会执行编译后的代码吗?
试试吧 ;)
如果它不起作用,你总是可以写一个需要init.lua
的单行init.lc
;一旦你的芯片启动并运行,它就不会影响你的性能。
或者您可以将编译后的文件重命名为init.lua,它也应该可以工作。
但请记住,正如文档所说:
[...]编译是RAM密集型的,因此你会发现你需要打破你的应用程序[...]