Node.js 运行NodeWebkit应用程序失败,原因是:package.json字段无效';主要';是必需的错误

Node.js 运行NodeWebkit应用程序失败,原因是:package.json字段无效';主要';是必需的错误,node.js,node-webkit,Node.js,Node Webkit,我已经使用我的NW应用程序好几个星期了,没有问题。我开始将其他同事带到我的repo中进行测试,我决定编写一个安装脚本,而不是强迫他们手动安装依赖项。今天,在运行要测试的安装脚本后,我尝试运行我的应用程序,但出现以下错误: Invalid package.json Field 'main' is required. 我没有对我的应用程序或package.json文件进行任何更改。我无法找出问题的原因,但NW的GitHub回购协议似乎存在一个未解决的问题,其中谈到: 我想知道是否还有其他人遇到过

我已经使用我的NW应用程序好几个星期了,没有问题。我开始将其他同事带到我的repo中进行测试,我决定编写一个安装脚本,而不是强迫他们手动安装依赖项。今天,在运行要测试的安装脚本后,我尝试运行我的应用程序,但出现以下错误:

Invalid package.json
Field 'main' is required.
我没有对我的应用程序或package.json文件进行任何更改。我无法找出问题的原因,但NW的GitHub回购协议似乎存在一个未解决的问题,其中谈到:

我想知道是否还有其他人遇到过这种情况,您可能会采取哪些措施来解决此问题

以下是有关我的应用程序的一些相关信息

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
我的目录树(从根目录):

我最里面的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 repo中记录了一个bug,但我现在确实找到了一个解决方法。进入nodewebkit目录中的node_modules目录(安装nodewebkit的地方),并将package.json重命名为_package.json

似乎与package.json和文件的读取顺序存在冲突

所以类似于“cd[节点模块的路径]/node_modules/nodewebkit;mv package.json_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"
  }
}