equanox / gotron Goto Github PK
View Code? Open in Web Editor NEWGo Api for Electron
License: MIT License
Go Api for Electron
License: MIT License
Hi,
How to use image in this package, because the image not load. I'm use vuejs.
can you put image in gotron's example?
Behaviour:
⋊> go run .
Loaded Configuration:
server:127.0.0.1
port:9109
name:Gotron
---
!prod
2018/10/29 15:12:02 Starting Electron...
2018/10/29 15:12:02 fork/exec ./app/node_modules/electron/dist/electron: no such file or directory
exit status 1
Only Electron.app
in the dist/
directory:
⋊> ls app/node_modules/electron/dist/
Electron.app LICENSES.chromium.html
LICENSE version
I am using gotron in Windows10. My app run smoothly. So, I packed my app by gotron-builder.
I put the executable somewhere in the PATH. However it return
npm WARN saveError ENOENT: no such file or directory, open 'C:\Users\user\package.json'
npm WARN enoent ENOENT: no such file or directory, open 'C:\Users\user\package.json'
npm WARN user No description
npm WARN user No repository field.
npm WARN user No README data
npm WARN user No license field.
npm audit fix
to fix them, or npm audit
for detailsHey
Been testing the example and the function
ws.onmessage = function(e) {
console.log("Message received: " + e.data);
}
will not be called in my javascript file. I can not see the mistake?
Hello
I can send strings, booleans, ints or another value or variable to backend?
I use the events but I don't understand what is the method to send values, I only can run a code whit a event but without a value from the Frontend
Example:
I create a form, the form get Username and password
When click "Send" with a event to backend, the event run the code but don't send the values to golang
How I compare this values with the values in the backend?
Or how i can send the values?
Thanks! :D
This is more a question. I've look into the examples using reactjs but im a bit confused on how to replicate an actual project using it. It looks like you have 2 package.json
files one at the root and one inside each ui folder. Would be nice if this can be run independently or maybe im not understanding the setup correctly.
Thanks lots
Applause for including a screenshot of a demo app, however It would be great to see apps that are using Gotron currently in a production setting if they exist, or a section/link to attract those who may want to submit their app to be featured as one using Gotron.
I started to play with gotron
yesterday, it is annoying fact that we need to construct a struct in order to start listening to an event.
window.On(&gotron.Event{Event: "event-name"}, func(bin []byte) {
//Handle event here
}
It will be such cleaner API, if On
method can accept String
param as following:
window.On("event-name", func(bin []byte) {
//Handle event here
}
Hi,
Sorry one more thing!!!
I am trying to build the sample app for windows. And I get checksum mismatch first
go: verifying github.com/otiai10/[email protected]: checksum mismatch
downloaded: h1:A7kMXwDPBTfIVRv2l6XV3U6Su3SzLUzZjxnDDQVZDIY=
go.sum: h1:QJNFh2XEtzwESNsblZgBuCsv38DU5vC/u+5DNBekwJM=
Do you have any idea how to tackle this?
BTW, go version = 1.11 & OS = Mojave 10.14.2
Hi
Working on MacBook pro.
Both go build
and gotron-builder
work properly for the same platform.
Cross-compiling the go app with go build
(GOOS=windows etc...) works.
gotron-builder --win
fails with the following error:
github.com/develar/app-builder/pkg/util.Execute
/Volumes/data/Documents/app-builder/pkg/util/util.go:75
github.com/develar/app-builder/pkg/wine.execWine
/Volumes/data/Documents/app-builder/pkg/wine/wine.go:92
github.com/develar/app-builder/pkg/wine.ConfigureCommand.func2
/Volumes/data/Documents/app-builder/pkg/wine/wine.go:43
github.com/alecthomas/kingpin.(*actionMixin).applyActions
/Volumes/data/go/pkg/mod/github.com/alecthomas/[email protected]+incompatible/actions.go:28
github.com/alecthomas/kingpin.(*Application).applyActions
/Volumes/data/go/pkg/mod/github.com/alecthomas/[email protected]+incompatible/app.go:557
github.com/alecthomas/kingpin.(*Application).execute
/Volumes/data/go/pkg/mod/github.com/alecthomas/[email protected]+incompatible/app.go:390
github.com/alecthomas/kingpin.(*Application).Parse
/Volumes/data/go/pkg/mod/github.com/alecthomas/[email protected]+incompatible/app.go:222
main.main
/Volumes/data/Documents/app-builder/main.go:78
runtime.main
/usr/local/Cellar/go/1.12/libexec/src/runtime/proc.go:200
runtime.goexit
/usr/local/Cellar/go/1.12/libexec/src/runtime/asm_amd64.s:1337
Error: /Users/pearl/go/src/fotomaster.com/mosaicpresentation/.gotron-builder/node_modules/app-builder-bin/mac/app-builder exited with code 1
at ChildProcess.childProcess.once.code (/Users/pearl/go/src/fotomaster.com/mosaicpresentation/.gotron-builder/node_modules/builder-util/src/util.ts:244:14)
at Object.onceWrapper (events.js:317:30)
at emitTwo (events.js:126:13)
at ChildProcess.emit (events.js:214:7)
at maybeClose (internal/child_process.js:925:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:209:5)
From previous event:
at runCallback (timers.js:789:20)
at tryOnImmediate (timers.js:751:5)
at processImmediate [as _immediateCallback] (timers.js:722:5)
From previous event:
at WinPackager.signAndEditResources (/Users/pearl/go/src/fotomaster.com/mosaicpresentation/.gotron-builder/node_modules/app-builder-lib/src/winPackager.ts:260:158)
at _bluebirdLst.default.map.file (/Users/pearl/go/src/fotomaster.com/mosaicpresentation/.gotron-builder/node_modules/app-builder-lib/src/winPackager.ts:363:21)
at go$readdir$cb (/Users/pearl/go/src/fotomaster.com/mosaicpresentation/.gotron-builder/node_modules/graceful-fs/graceful-fs.js:162:14)
at FSReqWrap.oncomplete (fs.js:135:15)
From previous event:
at /Users/pearl/go/src/fotomaster.com/mosaicpresentation/.gotron-builder/node_modules/app-builder-lib/src/winPackager.ts:361:27
at Generator.next (<anonymous>)
From previous event:
at WinPackager.signApp (/Users/pearl/go/src/fotomaster.com/mosaicpresentation/.gotron-builder/node_modules/app-builder-lib/src/winPackager.ts:355:73)
at /Users/pearl/go/src/fotomaster.com/mosaicpresentation/.gotron-builder/node_modules/app-builder-lib/src/platformPackager.ts:250:16
at Generator.next (<anonymous>)
at runCallback (timers.js:789:20)
at tryOnImmediate (timers.js:751:5)
at processImmediate [as _immediateCallback] (timers.js:722:5)
From previous event:
at WinPackager.doPack (/Users/pearl/go/src/fotomaster.com/mosaicpresentation/.gotron-builder/node_modules/app-builder-lib/src/platformPackager.ts:167:165)
at /Users/pearl/go/src/fotomaster.com/mosaicpresentation/.gotron-builder/node_modules/app-builder-lib/src/platformPackager.ts:113:16
at Generator.next (<anonymous>)
From previous event:
at WinPackager.pack (/Users/pearl/go/src/fotomaster.com/mosaicpresentation/.gotron-builder/node_modules/app-builder-lib/src/platformPackager.ts:111:95)
at /Users/pearl/go/src/fotomaster.com/mosaicpresentation/.gotron-builder/node_modules/app-builder-lib/src/packager.ts:430:24
at Generator.next (<anonymous>)
at runCallback (timers.js:789:20)
at tryOnImmediate (timers.js:751:5)
at processImmediate [as _immediateCallback] (timers.js:722:5)
From previous event:
at Packager.doBuild (/Users/pearl/go/src/fotomaster.com/mosaicpresentation/.gotron-builder/node_modules/app-builder-lib/src/packager.ts:396:24)
at /Users/pearl/go/src/fotomaster.com/mosaicpresentation/.gotron-builder/node_modules/app-builder-lib/src/packager.ts:366:57
at Generator.next (<anonymous>)
at /Users/pearl/go/src/fotomaster.com/mosaicpresentation/.gotron-builder/node_modules/graceful-fs/graceful-fs.js:111:16
at /Users/pearl/go/src/fotomaster.com/mosaicpresentation/.gotron-builder/node_modules/graceful-fs/graceful-fs.js:45:10
at FSReqWrap.oncomplete (fs.js:135:15)
From previous event:
at Packager._build (/Users/pearl/go/src/fotomaster.com/mosaicpresentation/.gotron-builder/node_modules/app-builder-lib/src/packager.ts:335:133)
at /Users/pearl/go/src/fotomaster.com/mosaicpresentation/.gotron-builder/node_modules/app-builder-lib/src/packager.ts:331:23
at Generator.next (<anonymous>)
at runCallback (timers.js:789:20)
at tryOnImmediate (timers.js:751:5)
at processImmediate [as _immediateCallback] (timers.js:722:5)
From previous event:
at Packager.build (/Users/pearl/go/src/fotomaster.com/mosaicpresentation/.gotron-builder/node_modules/app-builder-lib/src/packager.ts:288:14)
at build (/Users/pearl/go/src/fotomaster.com/mosaicpresentation/.gotron-builder/node_modules/app-builder-lib/src/index.ts:59:28)
at build (/Users/pearl/go/src/fotomaster.com/mosaicpresentation/.gotron-builder/node_modules/electron-builder/src/builder.ts:228:10)
at then (/Users/pearl/go/src/fotomaster.com/mosaicpresentation/.gotron-builder/node_modules/electron-builder/src/cli/cli.ts:46:19)
at <anonymous>
What do I miss?
Thanks
I was wondering how this project was communicating with electron without any javascript conversion.
Hello
gotron-builder failes on windows with the following error:
npm WARN mosaicpresentation No description
npm WARN mosaicpresentation No repository field.
npm WARN mosaicpresentation No README data
npm WARN mosaicpresentation No license field.
+ [email protected]
updated 1 package and audited 3259 packages in 3.517s
found 16 vulnerabilities (2 low, 10 moderate, 4 high)
run `npm audit fix` to fix them, or `npm audit` for details
1553614107 FTL home/equa/repos/gotron/cmd/gotron-builder/main.go:64 > : : exec: ".gotron-builder\\node_modules\\.bin\\electron-builder": file does not exist: exec: ".gotron-builder\\node_modules\\.bin\\electron-builder": file does not exist: : exec: ".gotron-builder\\node_modules\\.bin\\electron-builder": file does not exist: exec: ".gotron-builder\\node_modules\\.bin\\electron-builder": file does not exist
Hi
A new problem was just found using Goland IDE on Mac with Gotron.
When running the application I get this panic message:
chmod .gotron/assets: operation not permitted:
.gotron and .gotron/assets both have 777 permissions.
What can I do about this issue?
Thanks
Hi
As written in the getting-started guide, I run my gotron app and all modules are synched and downloaded. But on runtime it panics here:
done, err := window.Start()
if err != nil {
panic(err)
}
with this line:
panic: : : fork/exec /Users/myself/Projects/domain.com/projectname/.gotron/node_modules/.bin/electron: no such file or directory
I have node and npm installed and available, and also go 1.12 with modules enabled.
What do I miss?
Hello
Trying to execute gotron-builder on windows machine fails with this error:
found 16 vulnerabilities (2 low, 10 moderate, 4 high)
run `npm audit fix` to fix them, or `npm audit` for details
1553612580 FTL home/equa/repos/gotron/cmd/gotron-builder/main.go:64 > : : exec: ".gotron-builder\\node_modules\\.bin\\electron-builder": file does not exist: exec: ".gotron-builder\\node_modules\\.bin\\electron-builder": file does not exist: : exec: ".gotron-builder\\node_modules\\.bin\\electron-builder": file does not exist: exec: ".gotron-builder\\node_modules\\.bin\\electron-builder": file does not exist
In case someone else runs into the issue, on Arch the example project wouldn't build giving:
error while loading shared libraries: libgconf-2.so.4: cannot open shared object file: No such file or directory
The fix is to install lib32-gconf.
# github.com/Equanox/gotron
../../../../go/src/github.com/Equanox/gotron/gotron.go:47: undefined: sync.Map
above is the error I get when I execute the normal code copied from README.MD. BTW, my go version
is go version go1.8.3 darwin/amd64
I tried to resolve the issue by changing line ending in git config, however it did not help
$ npm run build
[email protected] build /mnt/data/Downloads/opt/opt/golang/src/go_electron
npm run build:js
[email protected] build:js /mnt/data/Downloads/opt/opt/golang/src/go_electron
cd ui/js && npm run build
[email protected] build /mnt/data/Downloads/opt/opt/golang/src/go_electron/ui/js
webpack
Hash: 4b93db3183f37013989f
Version: webpack 2.7.0
Time: 671ms
Asset Size Chunks Chunk Names
7b5fb88f12bec8143f00e21bc3222124.ttf 162 kB [emitted]
bundle.js 74.5 kB 0 [emitted] main
[0] ./src/app.js 356 bytes {0} [built]
[1] .//base64-js/index.js 3.94 kB {0} [built]/buffer/index.js 48.6 kB {0} [built]
[2] ./
[3] .//css-loader!./src/style.css 539 bytes {0} [built]/css-loader/lib/css-base.js 2.19 kB {0} [built]
[4] ./
[5] .//ieee754/index.js 2.06 kB {0} [built]/isarray/index.js 132 bytes {0} [built]
[6] ./
[7] .//style-loader/addStyles.js 8.51 kB {0} [built]/style-loader/fixUrls.js 3.01 kB {0} [built]
[8] ./
[9] ./src/style.css 899 bytes {0} [built]
[10] ./src/Roboto-Light.ttf 82 bytes {0} [built]
[11] (webpack)/buildin/global.js 509 bytes {0} [built]
[12] multi ./src/app.js 28 bytes {0} [built]
[email protected] postbuild:js /mnt/data/Downloads/opt/opt/golang/src/go_electron
cpy ui/js/build/. app/assets/ && move-cli app/assets/bundle.js app/assets/js/index.js && echo "Build Ui {ui/js}, cp bundle.js to app/assets/js/index.js"
/usr/bin/env: ‘node\r’: No such file or directory
npm ERR! Linux 4.15.0-39-generic
npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "run" "build:js"
npm ERR! node v8.10.0
npm ERR! npm v3.5.2
npm ERR! file sh
npm ERR! code ELIFECYCLE
npm ERR! errno ENOENT
npm ERR! syscall spawn
npm ERR! [email protected] postbuild:js: cpy ui/js/build/*.* app/assets/ && move-cli app/assets/bundle.js app/assets/js/index.js && echo "Build Ui {ui/js}, cp bundle.js to app/assets/js/index.js"
npm ERR! spawn ENOENT
npm ERR!
npm ERR! Failed at the [email protected] postbuild:js script 'cpy ui/js/build/. app/assets/ && move-cli app/assets/bundle.js app/assets/js/index.js && echo "Build Ui {ui/js}, cp bundle.js to app/assets/js/index.js"'.
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 gotron package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! cpy ui/js/build/. app/assets/ && move-cli app/assets/bundle.js app/assets/js/index.js && echo "Build Ui {ui/js}, cp bundle.js to app/assets/js/index.js"
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs gotron
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! npm owner ls gotron
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! /mnt/data/Downloads/opt/opt/golang/src/go_electron/npm-debug.log
npm ERR! Linux 4.15.0-39-generic
npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "run" "build"
npm ERR! node v8.10.0
npm ERR! npm v3.5.2
npm ERR! code ELIFECYCLE
npm ERR! [email protected] build: npm run build:js
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] build script 'npm run build:js'.
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 gotron package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! npm run build:js
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs gotron
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! npm owner ls gotron
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! /mnt/data/Downloads/opt/opt/golang/src/go_electron/npm-debug.log
Hi There,
Looks like copy.Perm doesn't exist in the module github.com/puengel/copy. The following error is printed out during compilation:
../github.com/Equanox/gotron/gotron_methods.go:122:9: undefined: copy.Perm
However copy.Copy works ok:
if firstRun || forceInstall {
templateDir := filepath.Join(gbwDirectory, templateApplicationDir)
//err = copy.Perm(templateDir, gbw.AppDirectory, 0777, 0644)
err = copy.Copy(templateDir, gbw.AppDirectory)
errz.Fatal(err)
}
cheers.
Does gotron support file actions (e.g., drag and drop, ...)? If yes, do you have an example somewhere?
Thanks for the nice lib!
I am trying to run
$ go run main.go
because $ go run .
does not work
Anyway I am getting compilation error from Golang:
# command-line-arguments
./main.go:124:21: undefined: FrontendPath
This is coming from that line in main.go:
//Conditional compilatiion for dev and prod
path, exe, args := FrontendPath()
Any suggestions why ?
Is this project still going on ,this is of great help to my work .
First congratulations for the initiative!
When I using the command go mod tidy the package github.com/puengel/copy has a breaking on this repository. The github link for this repository don't exist.
Hi
Is there any way to change the application Icon instead of the default "Electron"?
Thanks!
I'm currently trying to work through this but currently hitting:
Uncaught TypeError: Cannot set property 'render' of undefined
at normalizeComponent (componentNormalizer.js:26)
at eval (App.vue:15)
at Module../src/App.vue (bundle.js:246)
at __webpack_require__ (bundle.js:20)
at eval (webpack:///./src/main.ts?:5)
at Object../src/main.ts (bundle.js:305)
at __webpack_require__ (bundle.js:20)
at eval (webpack:///multi_./src/main.ts?:1)
at Object.0 (bundle.js:316)
at __webpack_require__ (bundle.js:20)
Being newer to frontend development, I'm not sure what you would need from me to debug this. Happy to post anything you might need.
I tried running example on ubuntu 19.04 but hang up electron process after about 10 seconds.
There hasn't been any commits in multiple months. Is this the roadmap still correct?
I'm using godep for installing dependency, including gotron.
At the beginning, I configured Gopkg.toml like:
[prune]
go-tests = true
unused-packages = true
[[constraint]]
name = "github.com/Equanox/gotron"
branch = "master"
This config file causes the error: my/project/vendor/github.com/Equanox/gotron/templates/app: no such file or directory
because templates/
folder in this project does not contain any *.go
files and godep prunes such subfolders.
$ ls -la vendor/github.com/Equanox/gotron/
total 232
drwxr-xr-x 17 user group 544 4 8 11:52 .
drwxr-xr-x 3 user group 96 4 8 12:28 ..
-rw-r--r-- 1 user group 225 4 8 11:52 .gitignore
-rw-r--r-- 1 user group 519 4 8 11:52 .travis.yml
-rw-r--r-- 1 user group 4975 4 8 11:52 BrowserWindow.md
-rw-r--r-- 1 user group 1073 4 8 11:52 LICENSE
-rw-r--r-- 1 user group 1475 4 8 11:52 Makefile
-rw-r--r-- 1 user group 4932 4 8 11:52 README.md
-rw-r--r-- 1 user group 41003 4 8 11:52 browser_window_instance_methods.go
-rw-r--r-- 1 user group 6674 4 8 11:52 browser_window_options.go
-rw-r--r-- 1 user group 708 4 8 11:52 go.mod
-rw-r--r-- 1 user group 3432 4 8 11:52 go.sum
-rw-r--r-- 1 user group 6909 4 8 11:52 gotron.go
-rw-r--r-- 1 user group 5823 4 8 11:52 gotron_methods.go
-rw-r--r-- 1 user group 2453 4 8 11:52 gotron_methods_pack.go
drwxr-xr-x 4 user group 128 4 8 11:52 internal
-rw-r--r-- 1 user group 216 4 8 11:52 logging.go
I had to add these lines to Gopkg.toml, to download the template/app
folder and other non-go folders.
[prune]
go-tests = true
unused-packages = true
+ [[prune.project]]
+ name = "github.com/Equanox/gotron"
+ unused-packages = false
+
[[constraint]]
name = "github.com/Equanox/gotron"
branch = "master"
I think this is a godep specific issue, but creating issue within gotron repository may help someone who also encountered this problem.
When we run gotron-builder
on Mac, we get a folder containing a Unix executable file with the name of our app and subfolder called electronjs
which contains an Application file called gotron-browser-window
. We can run the executable file to start the application locally, but if we try to copy it to another machine without the accompanying gotron-browser-window
Application file, it will not run.
We would like the output to be a portable Application file that we could copy to any Mac and run independently. How can we achieve this?
Note: When we attempt to build for windows, we have a similar issue.
I got a permission denied
error at the start of creating files in the directory .gotron
.
Turns out the .gotron
directory, and every subdirectory, is created with permissions of 555
instead of 755
.
EDIT
My umask
is 0022
.
⟩ go run main.go
panic: : : : mkdir .gotron/assets: permission denied: mkdir .gotron/assets: permission denied: : mkdir .gotron/assets: permission denied: mkdir .gotron/assets: permission denied: : : mkdir .gotron/assets: permission denied: mkdir .gotron/assets: permission denied: : mkdir .gotron/assets: permission denied: mkdir .gotron/assets: permission denied
goroutine 1 [running]:
main.main()
/code/go/src/github.com/nanohard/NoX/main.go:24 +0x109
exit status 2
⟩ la
total 12K
drwxr-xr-x 1 user users 60 Feb 11 23:15 ./
drwxr-xr-x 1 user users 110 Feb 11 22:19 ../
drwxr-xr-x 1 user users 98 Feb 11 23:15 .git/
-rw-r--r-- 1 user users 279 Feb 11 22:45 go.mod
-rw-r--r-- 1 user users 2.9K Feb 11 22:45 go.sum
dr-xr-xr-x 1 user users 0 Feb 11 23:15 .gotron/
-rw-r--r-- 1 user users 757 Feb 11 22:23 main.go
After go build
delete gotron module from $GOPATH/pkg/github/Equanox/gotron/
. Executable will fail with error since template folder does not exist anymore.
Need to copy templates to build dir or into build executable...
Hi
When I run
gotron-builder-amd64-darwin app=ui/dist
I get
FTL home/equa/repos/gotron/cmd/gotron-builder/main.go:64 > : : fork/exec node_modules/.bin/electron-builder: no such file or directory: fork/exec node_modules/.bin/electron-builder: no such file or directory: : fork/exec node_modules/.bin/electron-builder: no such file or directory: fork/exec node_modules/.bin/electron-builder: no such file or directory
My project looks like this:
main.go
node_modules
package.json
ui
src
dist
If I run gotron-builder-amd64-darwin
to get the default build it throws the same error?
I guess I missed a step during set up. Any ideas?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.