Comments 33
Прощу прощения за снобизм, но это все-таки не GitHub Electron, а просто Electron. Ранее был известен как Atom Shell.
Дельная статья, збазибо
Если говорим о стандалоне прикладах, то наверное следует дополнить статью про билдер (пакер) в эти самые приложения.
И, собственно, пакуем:
$ npm i electron-packager --save-dev
// package.json
"scripts": {
"build": "electron-packager . MyTestApp --ignore=node_modules/electron*" //пакуем в приложение и избавляемся от лишних зависимостей
}
И, собственно, пакуем:
$ npm run build
Хочу отметить ещё один, по моему мнению, плюс, который дает нам разработка десктопных приложений с помощью веб-технологий — отсутствие ограничения в создании пользовательского интерфейса.
Это и плюс, и минус. В качестве UI можно налепить что угодно, но очень сложно сделать так, чтобы это потом выглядело и работало как настольное приложение, а не как веб-страница в отдельном окне. Очень мало толковых вариантов для создания именно настольного UI. И разработчики Atom не спешат релизить те компоненты, которые они сами используют.
Кто хочет писать настольные приложения на JavaScript, советую глянуть на react native desktop. Он пока нестабильный, но активно пилится.
И не нужно плодить сущности — вот официальный репозиторий (atom/electron-quick-start) для быстрого старта с абсолютно идентичным кодом.
file://?
Очень хорошо. Хакеры уже ждут вас и вашу файловую систему.
Очень хорошо. Хакеры уже ждут вас и вашу файловую систему.
Это же локальное приложение, оно и так имеет доступ к файловой системе.
Подробнее здесь habrahabr.ru/company/dsec/blog/272017
Вы не поняли. Это не виджет с изолированной областью файловой системы, это обычное десктопное приложение, разработчик которого и так имеет полный доступ к файловой системе машины, на которой запускается программа. Т.е. если не «file://», то «fs.». Это же как программа на C, C#, JavaSE, Delphi — и так есть полный доступ ко всему, это предусмотренное поведение.
Расскажите лучше, как собирать пакет с приложением, использующим нативные плагины.
Делал утилиту для просмотра точек на карте Google Maps, точки грузил из SQLite. Для SQLite расширение собирается через node-gyp, вот я, помню, попрыгал. Слава богу нужно было только под одну платформу.
Делал утилиту для просмотра точек на карте Google Maps, точки грузил из SQLite. Для SQLite расширение собирается через node-gyp, вот я, помню, попрыгал. Слава богу нужно было только под одну платформу.
Тоже не однократно сталкивался с проблемами node-gyp. В большинстве случаев решалось без особых проблем. Если у вас есть интересный опыт решения сложных проблем которые могут возникнуть напишите статью, я буду очень признателен, как и многие.
Пардон за слоупостинг.
В Вашем случае отлично подойдет electron-rebuild, Удобен и пока что не подводил.
В Вашем случае отлично подойдет electron-rebuild, Удобен и пока что не подводил.
Если в Electron завёрнута удалённая веб-страница с X-Frame-Options: DENY, как с этим бороться? Конкретный пример с Myrrord: github.com/mikethedj4/Myrrord/issues/1
Доброго времени суток) есть у этого заморского чуда, возможность задать максимальные размеры окна (max-width, max-height)?
Посоны выручайте, Electron с jQuery не хочет работать… В браузере все норм, в Electron'е devTools выдает:
Uncaught ReferenceError: jQuery is not defined(anonymous function) @ index.html:11
скопировал исходники со статьи
командой electron. все нормально запускается
но при попытке собрать все в пакет получаю следующее.
(если кто знает причину и имеет решение, ткните носом, а то весь день мучаюсь.)
командой electron. все нормально запускается
но при попытке собрать все в пакет получаю следующее.
(если кто знает причину и имеет решение, ткните носом, а то весь день мучаюсь.)
npm run build
> electron-simple-app@0.0.1 build /home/roman/work/electron/apps/electron-simple-app-master
> electron-packager. electron-simple-app --ignore=node_modules/electron*
…
…
…
npm ERR! Linux 3.16.7-7-desktop
npm ERR! argv "/usr/bin/node" "/usr/bin/npm" «run» «build»
npm ERR! node v4.2.2
npm ERR! npm v3.5.2
npm ERR! code ELIFECYCLE
npm ERR! electron-simple-app@0.0.1 build: `electron-packager ./ electron-simple-app --ignore=node_modules/electron*`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the electron-simple-app@0.0.1 build script 'electron-packager. electron-simple-app --ignore=node_modules/electron*'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the electron-simple-app package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! electron-packager. electron-simple-app --ignore=node_modules/electron*
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs electron-simple-app
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! npm owner ls electron-simple-app
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! /home/user/work/electron/apps/electron-simple-app-master/npm-debug.log
> electron-packager. electron-simple-app --ignore=node_modules/electron*
…
…
…
npm ERR! Linux 3.16.7-7-desktop
npm ERR! argv "/usr/bin/node" "/usr/bin/npm" «run» «build»
npm ERR! node v4.2.2
npm ERR! npm v3.5.2
npm ERR! code ELIFECYCLE
npm ERR! electron-simple-app@0.0.1 build: `electron-packager ./ electron-simple-app --ignore=node_modules/electron*`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the electron-simple-app@0.0.1 build script 'electron-packager. electron-simple-app --ignore=node_modules/electron*'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the electron-simple-app package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! electron-packager. electron-simple-app --ignore=node_modules/electron*
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs electron-simple-app
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! npm owner ls electron-simple-app
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! /home/user/work/electron/apps/electron-simple-app-master/npm-debug.log
npm-debug.log
0 info it worked if it ends with ok
1 verbose cli [ '/usr/bin/node', '/usr/bin/npm', 'run', 'build' ]
2 info using npm@3.5.2
3 info using node@v4.2.2
4 verbose run-script [ 'prebuild', 'build', 'postbuild' ]
5 info lifecycle electron-simple-app@0.0.1~prebuild: electron-simple-app@0.0.1
6 silly lifecycle electron-simple-app@0.0.1~prebuild: no script for prebuild, continuing
7 info lifecycle electron-simple-app@0.0.1~build: electron-simple-app@0.0.1
8 verbose lifecycle electron-simple-app@0.0.1~build: unsafe-perm in lifecycle true
9 verbose lifecycle electron-simple-app@0.0.1~build: PATH: /usr/lib/node_modules/npm/bin/node-gyp-bin:/home/user/work/electron/apps/electron-simple-app-master/node_modules/.bin:/home/user/bin/Sencha/Cmd/6.0.2.14/..:/home/user/bin/Sencha/Cmd/6.0.2.14/..:/home/ruser/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
10 verbose lifecycle electron-simple-app@0.0.1~build: CWD: /home/user/work/electron/apps/electron-simple-app-master
11 silly lifecycle electron-simple-app@0.0.1~build: Args: [ '-c',
11 silly lifecycle 'electron-packager. electron-simple-app --ignore=node_modules/electron*' ]
12 silly lifecycle electron-simple-app@0.0.1~build: Returned: code: 1 signal: null
13 info lifecycle electron-simple-app@0.0.1~build: Failed to exec build script
14 verbose stack Error: electron-simple-app@0.0.1 build: `electron-packager ./ electron-simple-app --ignore=node_modules/electron*`
14 verbose stack Exit status 1
14 verbose stack at EventEmitter. (/usr/lib/node_modules/npm/lib/utils/lifecycle.js:232:16)
14 verbose stack at emitTwo (events.js:87:13)
14 verbose stack at EventEmitter.emit (events.js:172:7)
14 verbose stack at ChildProcess. (/usr/lib/node_modules/npm/lib/utils/spawn.js:24:14)
14 verbose stack at emitTwo (events.js:87:13)
14 verbose stack at ChildProcess.emit (events.js:172:7)
14 verbose stack at maybeClose (internal/child_process.js:818:16)
14 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:211:5)
15 verbose pkgid electron-simple-app@0.0.1
16 verbose cwd /home/user/work/electron/apps/electron-simple-app-master
17 error Linux 3.16.7-7-desktop
18 error argv "/usr/bin/node" "/usr/bin/npm" «run» «build»
19 error node v4.2.2
20 error npm v3.5.2
21 error code ELIFECYCLE
22 error electron-simple-app@0.0.1 build: `electron-packager. electron-simple-app --ignore=node_modules/electron*`
22 error Exit status 1
23 error Failed at the electron-simple-app@0.0.1 build script 'electron-packager. electron-simple-app --ignore=node_modules/electron*'.
23 error Make sure you have the latest version of node.js and npm installed.
23 error If you do, this is most likely a problem with the electron-simple-app package,
23 error not with npm itself.
23 error Tell the author that this fails on your system:
23 error electron-packager. electron-simple-app --ignore=node_modules/electron*
23 error You can get information on how to open an issue for this project with:
23 error npm bugs electron-simple-app
23 error Or if that isn't available, you can get their info via:
23 error npm owner ls electron-simple-app
23 error There is likely additional logging output above.
24 verbose exit [ 1, true ]
1 verbose cli [ '/usr/bin/node', '/usr/bin/npm', 'run', 'build' ]
2 info using npm@3.5.2
3 info using node@v4.2.2
4 verbose run-script [ 'prebuild', 'build', 'postbuild' ]
5 info lifecycle electron-simple-app@0.0.1~prebuild: electron-simple-app@0.0.1
6 silly lifecycle electron-simple-app@0.0.1~prebuild: no script for prebuild, continuing
7 info lifecycle electron-simple-app@0.0.1~build: electron-simple-app@0.0.1
8 verbose lifecycle electron-simple-app@0.0.1~build: unsafe-perm in lifecycle true
9 verbose lifecycle electron-simple-app@0.0.1~build: PATH: /usr/lib/node_modules/npm/bin/node-gyp-bin:/home/user/work/electron/apps/electron-simple-app-master/node_modules/.bin:/home/user/bin/Sencha/Cmd/6.0.2.14/..:/home/user/bin/Sencha/Cmd/6.0.2.14/..:/home/ruser/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
10 verbose lifecycle electron-simple-app@0.0.1~build: CWD: /home/user/work/electron/apps/electron-simple-app-master
11 silly lifecycle electron-simple-app@0.0.1~build: Args: [ '-c',
11 silly lifecycle 'electron-packager. electron-simple-app --ignore=node_modules/electron*' ]
12 silly lifecycle electron-simple-app@0.0.1~build: Returned: code: 1 signal: null
13 info lifecycle electron-simple-app@0.0.1~build: Failed to exec build script
14 verbose stack Error: electron-simple-app@0.0.1 build: `electron-packager ./ electron-simple-app --ignore=node_modules/electron*`
14 verbose stack Exit status 1
14 verbose stack at EventEmitter. (/usr/lib/node_modules/npm/lib/utils/lifecycle.js:232:16)
14 verbose stack at emitTwo (events.js:87:13)
14 verbose stack at EventEmitter.emit (events.js:172:7)
14 verbose stack at ChildProcess. (/usr/lib/node_modules/npm/lib/utils/spawn.js:24:14)
14 verbose stack at emitTwo (events.js:87:13)
14 verbose stack at ChildProcess.emit (events.js:172:7)
14 verbose stack at maybeClose (internal/child_process.js:818:16)
14 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:211:5)
15 verbose pkgid electron-simple-app@0.0.1
16 verbose cwd /home/user/work/electron/apps/electron-simple-app-master
17 error Linux 3.16.7-7-desktop
18 error argv "/usr/bin/node" "/usr/bin/npm" «run» «build»
19 error node v4.2.2
20 error npm v3.5.2
21 error code ELIFECYCLE
22 error electron-simple-app@0.0.1 build: `electron-packager. electron-simple-app --ignore=node_modules/electron*`
22 error Exit status 1
23 error Failed at the electron-simple-app@0.0.1 build script 'electron-packager. electron-simple-app --ignore=node_modules/electron*'.
23 error Make sure you have the latest version of node.js and npm installed.
23 error If you do, this is most likely a problem with the electron-simple-app package,
23 error not with npm itself.
23 error Tell the author that this fails on your system:
23 error electron-packager. electron-simple-app --ignore=node_modules/electron*
23 error You can get information on how to open an issue for this project with:
23 error npm bugs electron-simple-app
23 error Or if that isn't available, you can get their info via:
23 error npm owner ls electron-simple-app
23 error There is likely additional logging output above.
24 verbose exit [ 1, true ]
Проверте формат вызова electron-packager:
Во первых мне кажется у вас нет пробела между electron-packager и точкой которая указывает
electron-packager <sourcedir> <appname> --platform=<platform> --arch=<arch> --version=<Electron version> [optional flags...]
Во первых мне кажется у вас нет пробела между electron-packager и точкой которая указывает
Во вторых у меня были проблемы если не указывать --platform=____
По умолчанию если не указано подразумевается как --platform=all, и пакуется под все доступные платформы, по этому изначально пробуйте только под свою ОС собирать.
У меня вызов выглядит так:
По умолчанию если не указано подразумевается как --platform=all, и пакуется под все доступные платформы, по этому изначально пробуйте только под свою ОС собирать.
У меня вызов выглядит так:
electron-packager . AppName --platform=win32 --arch=x64 --version=0.33.3 --out=./Release --overwrite --ignore=Release
Sign up to leave a comment.
Создание десктопного приложения с помощью Electron и веб-технологий