2014-04-01 13 views
7

Tôi đã làm việc với ứng dụng NW của mình trong vài tuần mà không gặp vấn đề gì. Tôi bắt đầu đưa các đồng nghiệp khác vào repo của tôi để kiểm tra và tôi quyết định viết một kịch bản cài đặt thay vì buộc họ phải cài đặt các phụ thuộc theo cách thủ công. Hôm nay, sau khi chạy tập lệnh cài đặt để kiểm tra, tôi đã thử chạy ứng dụng của mình và gặp phải lỗi sau:Chạy ứng dụng NodeWebkit không thành công với: Invalid package.json Trường 'main' là lỗi bắt buộc

Invalid package.json 
Field 'main' is required. 

Tôi không thay đổi ứng dụng hoặc tệp package.json của mình. Tôi không thể tìm ra những gì có thể gây ra vấn đề, nhưng không có vẻ như là một vấn đề mở trên GitHub repo NW của mà nói về vấn đề này:

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

Tôi tự hỏi nếu có ai khác đang trải qua điều này, và những gì bạn có thể đã làm để giải quyết vấn đề này?

Dưới đây là một số thông tin có liên quan về ứng dụng của tôi.

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

Tôi đã cố gắng tải phiên bản cho nodewebkit, nhưng lệnh nodewebkit không cung cấp cờ phiên bản.

Các cài đặt shell script

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 

cây thư mục của tôi (từ gốc):

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

trong cùng tập tin package.json tôi, trong thư mục ứng dụng chính của tôi:

{ 
    "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" 
} 

Và đây là package.json ngoài cùng:

{ 
    "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" 
    } 
} 

Trả lời

9

Vì vậy, có một lỗi đăng nhập cho điều này trong repo nodewebkit, nhưng tôi đã tìm thấy một workaround cho bây giờ. Đi vào thư mục node_modules (trong đó nodewebkit được cài đặt) trong thư mục nodewebkit và đổi tên package.json thành _package.json.

Dường như có xung đột với package.json và thứ tự đọc của các tệp.

Vì vậy, một cái gì đó như 'cd [đường dẫn đến mô-đun nút]/node_modules/nodewebkit; mv package.json _package.json' nên làm điều đó.

XIN LƯU Ý: Đây chỉ là một cách giải quyết, họ nên được phát hành bản sửa lỗi (hy vọng) sớm, nhưng cho đến khi họ làm ...

+0

này làm việc cho tôi. Cảm ơn. –

Các vấn đề liên quan