运行NodeWebkit应用失败:package.json无效字段“main”是必需的错误

我一直在使用我的NW应用程序几个星期,现在没有问题。 我开始把其他同事带入我的回购testing中,并决定编写一个安装脚本,而不是强迫他们手动安装依赖关系。 今天,运行安装脚本来testing后,我试着运行我的应用程序,并得到以下错误:

Invalid package.json Field 'main' is required. 

我没有改变我的应用程序,或我的package.json文件。 我不知道是什么原因导致了这个问题,但是在NW的GitHub回购中似乎有一个公开的问题,那就是:

https://github.com/rogerwang/node-webkit/issues/1503

我想知道是否有其他人正在经历这个,你可能做了什么来解决这个问题?

以下是关于我的应用的一些相关信息。

 node-webkit: v0.8.5 node.js: v0.10.22 Chromium: 30.0.1599.66 bower: 1.3.1 yeoman: 1.1.2 

我试图获取nodewebkit本身的版本,但命令nodewebkit不提供版本标志。

安装shell脚本

 npm install bower -g npm install yeoman -g npm install generator-node-webkit -g npm install nodewebkit -g npm install grunt-cli -g bower install npm install 

我的目录树(从根目录):

 ├── Gruntfile.js ├── app │ ├── css │ │ ├── main.css │ ├── index.html │ ├── js │ │ ├── application.js │ └── package.json ├── bower.json ├── package.json 

我的最内层的package.json文件,在我的主要应用程序目录中:

 { "name": "directory", "main": "index.html", "version": "0.0.1", "single-instance": true, "window": { //"toolbar": false, "title": "Directory", "width": 850, "height": 600, "min_width": 850, "min_height": 600 }, "chromium-args": "--child-clean-exit" } 

这里是最外面的package.json:

 { "name": "directory", "version": "0.0.0", "main": "app/index.html", "description": "", "keywords": [], "dependencies": { "xls-to-json": "~0.2.0" }, "devDependencies": { "matchdep": "~0.1.2", "grunt": "~0.4.1", "grunt-contrib-copy": "~0.4.1", "grunt-contrib-sass": "~0.4.1", "grunt-contrib-concat": "~0.1.3", "grunt-contrib-jshint": "~0.4.3", "grunt-contrib-clean": "~0.4.1", "grunt-contrib-rename": "0.0.3", "grunt-contrib-compress": "~0.5.3", "xls-to-json": "~0.2.0" }, "engines": { "node": ">=0.8.0" } } 

所以,在nodewebkit仓库中有一个这样的buglogging,但是我现在find了一个解决方法。 进入nodewebkit目录中的node_modules目录(其中安装了nodewebkit的目录),并将package.json重命名为_package.json。

看来,与package.json和文件的读取顺序有冲突。

所以像' cd [节点模块的path] / node_modules / nodewebkit; mv package.json _package.json '应该这样做。

请注意:这只是一个解决方法,他们应该释放一个修复(希望)很快,但直到他们做…