Pull to refresh

Comments 20

Очень интересны два момента.
Первый это какие сейчас различия между NodeWebkit и AppJS
Второй это получилось ли у вас использовать node-sqlite3 под win x64 (у меня с этим трудности под виндой, поэтому пока использую встроенный websql)

Тоже было забавно когда вышла версия 0.5 RC и не работал лог в консоли :).
С тех пор, как в октябре прошлого (2012) года я увидел (и изложил в послесловии к вон той блогозаписи), что движку node-webkit удалось обойти AppJS сразу по нескольким направлениям, я утратил интерес к AppJS и не следил за ним сколько-нибудь плотно. Допускаю, что за прошедшие с тех пор полгода разрыв мог и сократиться, но вряд ли существенно.

Модуль node-sqlite3 я не собирал ещё под Windows x64: согласно README от node-gyp, для этого надобно Windows 7 64-bit SDK, а мне лень скачивать и ставить его.

Однако сразу скажу, что для node-webkit этого и не нужно делать, потому что node-webkit тридцатидвухбитен, а не шестидесятичетырёхбитен. Для node-webkit я node-sqlite3 собирал успешно — кроме той последней версии, в которой тестирование ≈месяц назад перетащили с expresso на mocha, что само по себе прекрасно, но мне теперь все тесты, ранее для проверки node-sqlite3 под node-webkit работавшие, придётся переписать заново в моём форке. Потому что какой смысл собирать модуль, если его не в чем проверить.
К сожалению, только намучившись, даже под ubuntu не получилось использовать sqlite3. Приложение просто закрывается.
Установил через npm — npm install sqlite3
В общем копал я копал и накопал. Не правильно делал: надо пересобирать не через node-gyp, а через nw-gyp (мой провтык).
Последовательность действий для успешной установки модуля такая:

Ubuntu / Debian
cd /your/app/folder/
— в одном уровне с node_modules
sudo  npm install sqlite3
cd node_modules/sqlite3

sudo nw-gyp --target=0.5.1 rebuild
— а теперь ключевое пересобрать пакет с учетом используемой версии node-webkit

Windows
Я парился со сборкой под ненавистной форточкой, плюнул :) нашел это (проверено на версии 0.4.1)

https://github.com/zycbob/node-webkit-sqlite3-windows-demo
Сколько будет весить простое приложение «Hello, world!»?
Если есть раскладка по платформам — отдельное спасибо.
Вес «Hello, world!» (и любого другого простого приложения, занимающего считанные килобайты или десятки килобайтов JS+HTML+CSS) ничтожен по сравнению с весом самогó движка.

Движок node-webkit, собранный под различные платформы, можно скачать из раздела «Downloads» на его гитхабовской странице, чтобы самостоятельно посчитать вес его.

ZIP-архив node-webkit версии 0.5.1 для Windows занимает 23 973 968 байтов, в распакованном виде — 56 592 472 байта (включая утилиту nwsnapshot, которая для запуска приложений не нужна). В комментарии к прошлому обзору я упоминал, впрочем, что употребление UPX позволяет сократить объём основного исполняемого файла почти на два десятка мегабайтов, когда это необходимо.
Для сравнения сообщу, что объём приложения «Hello Habrahabr!» (скриншот от которого приведён наверху) составляет 1 195 998 байтов, из которых:

  • 1 055 728 байтов — фотография заброшенной аллеи (фон окна),
     
  • 93 637 байтов — библиотека jQuery версии 1.8.3,
     
  • 39 047 байтов — код CSS (включая base64-кодированный шрифт заголовка),
     
  • 5 430 байтов — значок Хабрахабра (именно он показывается в заголовке окна),
     
  • 780 байтов — код HTML,
     
  • 226 байтов — код package.json (файл с описанием приложения для node-webkit).

(Ещё 1 150 байтов занимает лишний файл со значком Node.js, который употреблялся в отладочных целях. Его давно пора было стереть, и сейчас сотру.)
Сейчас занимаюсь разработкой приложения на node-webkit, и очень не хватает некоторых фич:

1) Возможности не показывать иконку для некоторых окон приложения в доке MacOS (на панели задач Windows). Нужна эта фича для создания системы всплывающих уведомлений (родные вебкитовские просто не пашут)

2) Не столь важная, но все же нужная мелочь — поддержка прозрачности у окон приложения.

3) Система автообновления приложения. Вы описывали то, как она должна примерно выглядеть, на гитхабе. Жаль что таковой пока не появилось. (https://github.com/rogerwang/node-webkit/issues/233)

Но самая главная — первая функция, без второй можно обойтись, третью — реализовать как-то самому. Очень надеялся на версию 0.5, но теперь придется ждать еще месяц-другой до 0.6, и надеяться что повезет там.
Всплывающие уведомления позавчера обсуждалися на Google Groups, и было сказано, что решение проблемы 251 существует, но только в отдельной ветви и только для Windows и Linux, а для Маков никто не сочинил ещё необходимого кода. Печально, но, видимо, и впрямь до лета никто не закончит решение этой проблемы.
Для мака проблема с иконкой в доке стоит не так остро (главное окно программы и окошки уведомлений группируются в одну иконку, и их даже не заметно). А вот с Windows XP — беда.
Разрабатывая приложение на node-webkit наткнулся на баг, который победить не получилось. Суть в том, что на абсолютно чистой винде (только что установленной внутри виртуальной машины) 3D-эффекты описанные на CSS3 не работают, а именно вот эта демка: www.xiper.net/examples/html-and-css-tricks/effects/flip-click.html Хотя все dll ложил рядом с nw.exe
Помойму да, пробовал устанавливать специально последний пакет directx redistributable и вытаскивать из него эти два файла. Но на выходных всё-таки снова попробую всё повторить.
В случае неудачи рекомендую сообщить разработчикам node-webkit о проблеме, сообщив все данные («чистая винда», «клал DLL от DirectX», URL сайта, модель видюхи) и надеясь на воспроизводимость, а значит, и на лёгкую отлавливаемость этой проблемы разработчиками.

Только сперва попробовать на невиртуализованной винде.
Хорошо. Если воспроизведу, то выложу даже образ виртуальной машины. Спасибо.
Ещё полезно попробовать, идёт ли эта демка в Chromium (или в Google Chrome) на той же машине. А не то может и не в node-webkit быть дело, а в одной из составных частей его. Тогда и о баге надобно будет сообщать сразу в Google.
Да, данная демка работала в Google Chrome на этой же машине.
Сейчас занялся этим багом. Воспроизвести его получилось. Последовательность была такой:
1) Установил Windows XP
2) Установил Google Chrome
3) Установил directx_Jun2010_redist.exe
4) Перезапустил систему
5) Собрал app.exe согласно документации, используя html код от сюда: www.xiper.net/examples/html-and-css-tricks/effects/flip-click.html
6) Дополнительно положил файлы D3DCompiler_43.dll и d3dx9_43.dll рядом с app.exe

Итог: не работает. Интересен тот факт, что также и в Google Chrome не работает этот пример.

Может быть причиной то, что используется виртуальная машина VirtualBox или всё-таки стоит оформить этот как баг?
Если и в Google Chrome не работает, тогда попробуйте сообщить его как проблему на сайте Chromium.

(Понятно, что после исправления этой проблемы в Chromium она будет автоматически исправлена и в последующей крупной версии движка node-webkit, код которого основан на Chromium.)
Sign up to leave a comment.

Articles