我最近开始探索Browserify,用于捆绑Node模块并在浏览器中使用它们。它很整洁,效果很好,但是我想要改善工作流程。在我的使用情况下,我有一个script.js
文件,需要像Cylon等如何在浏览器中动态创建JavaScript文件
为了简洁节点模块,script.js
看起来像:
"use strict";
var Cylon = require('cylon');
Cylon.robot({
name: "BrowserBot",
connections: {
arduino: { adaptor: 'firmata', port: '/dev/tty.usbmodem1411' }
},
devices: {
led: { driver: 'led', pin: 8 }
},
work: function(my) {
Cylon.Logger.info("Hi, my name is " + my.name)
every((2).seconds(), function() {
Cylon.Logger.info("Toggling the LED");
my.led.toggle();
});
}
});
Cylon.start();
我一直在寻找在bundle.js
文件browserify产生,我可以找到上面提到的确切的代码块,我认为一个节点进程是用这个代码和一些绑定开始的。我希望script.js
文件是动态的,以允许用户在LED上使用不同的引脚或针对此问题进行任何其他小改动。由于我没有更改此文件的任何依赖关系,因此我应该可以将bundle.js
中的该块替换为script.js
文件的新内容,因为其他模块已经加载并捆绑在bunndle.js
右边?
我想知道这是否可以在浏览器设置。 Chrome应用允许file Storage,因此我可以在初始创建后动态生成bundle.js
,我只需插入script.js
的内容并在HTML文件中加载bundle.js
?我如何去做这件事?
虽然问题不是特定于Cylon,但我仍然将它作为我的特定用例的标记添加。
不知道你的问题是什么。这个'bundle.js'在应用中如何使用?什么阻止你做一些接受参数的接口? – Xan
嘿@Xan! 'bundle.js'文件是通过'browserify'生成的。所以一堆节点模块被编译并且在那里生存。所以,'Cylon'模块和所有'firmata'适配器都在'bundle.js'中。但是,因为'script.js'可以是任何与arduino有关的代码。我不知道如何将它作为参数构建到'bundle.js'中? –