【发布时间】:2017-01-26 08:48:30
【问题描述】:
我最近开始探索 Browserify 以捆绑 Node 模块并在浏览器中使用它们。它很整洁,效果很好,但是我希望改进工作流程。在我的用例中,我有一个 script.js 文件,它需要像 Cylon 这样的节点模块。
为简洁起见,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();
我正在查看 browserify 生成的 bundle.js 文件,我可以找到上面提到的确切代码块,并且我认为节点进程是使用此代码和一些绑定启动的。我希望script.js 文件是动态的,以允许用户在 LED 上使用不同的引脚或任何其他小的更改。由于我没有更改此文件的任何依赖项,因此我应该能够将bundle.js 中的该块替换为script.js 文件的新内容,因为其他模块已经加载并捆绑在bunndle.js 中,对吗?
我想知道这在浏览器设置中是否可行。 Chrome 应用程序允许file Storage,因此我可以在初始创建后动态生成bundle.js,我只需插入script.js 的内容并将bundle.js 加载到HTML 文件中?我该怎么办?
虽然这个问题不是 Cylon 特有的,但我仍将其添加为我的特定用例的标签。
【问题讨论】:
-
不确定您的问题是什么。这个
bundle.js在应用程序中是如何使用的?是什么阻止您制作一些接受参数的接口? -
嘿@Xan!
bundle.js文件是通过browserify生成的。所以一堆节点模块被编译并存在在那里。所以,Cylon模块和所有其他firmata适配器之类的东西都在bundle.js中。但是因为script.js可以是任何与arduino 相关的代码。我不确定如何将其作为参数构建到bundle.js中?
标签: javascript html browserify google-chrome-app cylon.js