我正在为node.js开发一个库,它主要是作为一个本机模块构建的。因此,当人们试图将其包含到节点-webkit项目中时,他们必须使用nw-gyp
而不是node-gyp
重新编译它。我知道我们可以在构建的代码运行时检测节点-webkit,具体如下所示:
`try { isNodeWebkit = (typeof require('nw.gui') !== "undefined"); } catch(e) { isNodeWebkit = false; }`
但是,我想在安装脚本(由npm install
运行)中检测到这一点。或者,我们查看自己的package.json
,但是是否有一种方法可以查看根项目的package.json
?这样的话,我们至少可以看看一些财产,也许是engine
之类的?
发布于 2015-03-04 00:40:04
最后,我编写了一个模块来完成这个任务:https://github.com/maxkorp/which-native-nodish (还支持原子-shell和重命名的nw.js)。
要点是,您从模块的父目录开始,只要您是node_modules文件夹的子文件夹(该文件夹是带有package.json的文件夹的子文件夹),就继续上升。在根级别上,检查package.json中的engines属性,以获得atom-shell、节点-webkit或nwjs属性。不能保证工作(最远的祖先项目必须指定它是否以这种方式使用节点ish引擎),但它总比没有好,也是我见过的唯一开箱即用的解决方案。
发布于 2014-11-30 14:50:16
为了查看您自己的package.json,您可以这样做
gui = require(nw.gui);
myPackageJSONFile = gui.App.manifest; // this will get the package.json file
我希望这能帮到你。
发布于 2015-03-13 09:13:43
简单地说:
isNodeWebkit = (typeof process == "object");
https://stackoverflow.com/questions/27154941
复制相似问题