我想编写一个Chrome应用程序,但我也希望使用Edge.js与一些.Net代码进行交互操作。现在我已经在Nodejs应用中试用了它,但我无法弄清楚如何在Chrome应用中做到这一点。
我观看过Paul Kinlan(the Chrome Apps office hours - NodeJS in chrome packaged apps)的YouTube视频,但无法获取代码。我也尝试过浏览器而没有成功。
是否存在使用Chrome应用中的任何节点模块的工作示例(因为可用资源看起来较旧)。
提前致谢, 的Manoj。
答案 0 :(得分:4)
我在chrome打包的应用程序中运行为node.js编写的代码,并使用browserify或webpack使用发布到npm的模块。
对我而言,唯一真正棘手的问题一直是导出我的网络应用程序使用的功能,因为您无法访问require()
。我通常只创建一个特殊模块,导出我想要访问的所有全局符号,并将其用作我的入口点。
,例如,使用webpack,我将创建一个名为globals.js
的文件:
module.exports = exports = {
a: require('a'),
b: require('b'),
...
}
然后创建webpack.config.js
:
module.exports = {
context: __dirname + "/js",
entry: {
globals: [
"globals.js",
],
},
output: {
// Make sure to use [name] or [id] in output.filename
// when using multiple entry points
path: __dirname + "/js/generated",
filename: "[name].bundle.js",
chunkFilename: "[id].bundle.js",
library: "[name]",
libraryTarget: "umd",
}
};
然后我可以打包并将生成的包包含在我的应用程序中,并立即使用全局变量globals
。
我不确定Edge.js的工作原理,但我不认为将webpack / browserify转换为web / chrome应用程序是可能的,因为它们不支持本机绑定和进程间通信有很多不同。我只是不确定它是如何起作用的。
(但你可以使用不同类型的IPC实现自己的.net应用程序互操作),