是否可以使用node.js模块编写Chrome应用程序?

mmw*_*kar 6 javascript node.js google-chrome-app

我想编写一个Chrome应用程序,但我也希望使用Edge.js与一些.Net代码进行交互操作.现在我已经在Nodejs应用程序中试用了它,但我无法弄清楚如何在Chrome应用程序中执行此操作.

我观看过Paul Kinlan的YouTube视频(Chrome Apps办公时间 - Chrome打包应用程序中的 NodeJS ),但无法运行代码.我也试过浏览器没有成功.

是否存在使用Chrome应用程序中的任何节点模块的工作示例(因为可用资源看起来较旧).

在此先感谢Manoj.

mmo*_*cny 4

我已经在 chrome 打包应用程序中运行为 node.js 编写的代码,并使用 browserify 或 webpack 发布到 npm 的模块。

传统上,对我来说唯一真正棘手的一点是导出功能以供我的网络应用程序使用,因为您无权访问require(). 我通常只是创建一个特殊的模块,导出我想要访问的所有全局符号并将其用作入口点。

例如,使用 webpack,我会创建一个名为的文件globals.js

module.exports = exports = {
  a: require('a'),
  b: require('b'),
  ...
}
Run Code Online (Sandbox Code Playgroud)

然后创建一个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",
  }
};
Run Code Online (Sandbox Code Playgroud)

然后我可以打包它并将生成的包包含在我的应用程序中,然后globals立即使用全局变量。

我不确定 Edge.js 是否有效,但我认为不可能将其 webpack/browserify 到 web/chrome 应用程序中,因为它们不支持本机绑定,并且进程间通信很多不同的。我只是不确定它是如何运作的。

(但是您也许可以使用不同类型的 IPC 来实现您自己的与 .net 应用程序的互操作)