Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hi and thnx! #1

Open
mrzafod opened this issue Aug 1, 2016 · 7 comments
Open

Hi and thnx! #1

mrzafod opened this issue Aug 1, 2016 · 7 comments

Comments

@mrzafod
Copy link

mrzafod commented Aug 1, 2016

Hi @cgalvarez I did fork your repo few days ago and turn it into the package inside the app.
As you mentioned it doesnt build windows distro from linux, but I dont need that feature. So thanks for your work, it works fine on linux - tryed Ubuntu 14/16.

@cgalvarez
Copy link
Owner

Thank you very much for your feedback @mrzafod!! Glad to hear the project is helpful. I hope spent some time this week implementing the Windows builds from Linux and make the complete PR to the main project.

BTW, did you try all available distros? .deb, .rpm and .AppImage. All of them can be built from Linux. The details are in the fork readme.

@mrzafod
Copy link
Author

mrzafod commented Aug 3, 2016

Yeah, I've made only .deb and .rpm. I gonna try appImage soon too.
For now I am going to separate this package into 2 different - first w debubOnly: true for development and packaging and second is for production runtime.
Also I found very handy to provide an option to include any files/folders for bundling. Like .electron folder - it doesnt handled by Meteor but can be included as asset for Electron's main process.
Just a few thoughts I would share.

Thanks again. And feel free to collaborate!

@cgalvarez
Copy link
Owner

Thanks for your thoughts @mrzafod! 😄. There is a pending PR Bundling meteor client for offline use that may suit your needs. Haven't tried myself, but it's worth to take a look, sure.

BTW, I don't remember if I have explained it in the readme, but AppImage has two unique features:

  • doesn't need to be installed: it's a universal & portable executable.
  • its updates are incremental (uses zsync): if you distribute a 30MB version, and then you update it with new features/fixes to a new 35MB version, it calcs the different bytes and that's what is really downloaded (maybe only 7MB). This speeds up updates A LOT.

@mrzafod
Copy link
Author

mrzafod commented Sep 15, 2016

Hi @cgalvarez. I've thought a lot about how to make packaging more handy and found that we could use Meteor Compiler Build Plugin

It allows us to load electron configuration from special file or package.js. And also we can handle filechanges. So we could know if the app running in devmode and rerun electron process. Or even we could handle changes in the Electorn app sources and prevent them from adding into Meteor compile process but rebuld an Electorn and run it!

Also we could implement "native" Meteor's build comand like meteor build --arch desktop.linux buy bundling electorn app for given platform

@cgalvarez
Copy link
Owner

Hi @mrzafod. Thank you very much for your suggestions!!

I've already made a Meteor compiler plugin. A compiler plugin cannot monitor/listen filechanges already managed by another compiler plugin which handles the same extensions. For example, you cannot have two packages added that compiles *.sass to *.css because they conflict each other. I suffered this when learning angular2-meteor and initially using fourseven:scss, but then they implemented their own SCSS compiler into angular2-compilers and my app stopped working.

So we should think carefully about what files to listen to. In my case, I used a combined extension which is a little hack to avoid problems: i18n.json. This could be useful here to listen to some kind of settings.electron.json which could contain all the electron configuration for the Meteor project, and listen to electron.json, so we only rebuild electron app when its settings are modified (since the app is loaded as a webapp inside electron, I think there's no usefulness in listen to the entire Meteor app).

I agree you in that implement a native command would be very very user-friendly. I thought about something like meteor add-platform desktop:linux and/or meteor run electron:linux. But currently I have no idea on how to do this, to be honest with you.

It seems that electron-webapps:meteor-electron it's not receiving much attention (5 months since last update), so I've thought about making this fork a separate meteor plugin and implement all those features, but right now I'm very busy with lmieulet:meteor-coverage and some private projects to do these changes.

@mrzafod
Copy link
Author

mrzafod commented Sep 16, 2016

Hi @cgalvarez

I've already made a Meteor compiler plugin. A compiler plugin cannot monitor/listen filechanges already managed by another compiler plugin which handles the same extensions

Yeah, I know. But take a look on Minifiers like standart-minifier. It handles all the .js files. Its easy to replace standart minifiers with Electron bundler

since the app is loaded as a webapp inside electron, I think there's no usefulness in listen to the entire Meteor app

And again Yes. But what if I want to change the entire Electorn code (I mean node-side code)?

I am just on the way to try it. And it seems like pretty aim for me now.
Anyway, thanks again. I've used your fork and built very nice App. And luck with all your projects.

@cgalvarez
Copy link
Owner

But what if I want to change the entire Electron code (I mean node-side code)?

You're right. AFAIK, Meteor does not watch hidden folders (starting with a dot .). Just some insights, but maybe you could place the Electron app code inside the folder .meteor-electron that stores the Electron files through the setting appSrcDir. This way you could possibly watch a folder non-watched by Meteor.

I am just on the way to try it. And it seems like pretty aim for me now.

I wish you achieve it 😉 , and you are welcome to make a pull request if you want. As I say, I plan to re-take this project as soon as I know how to test, instrument and analyze (static analysis) Meteor projects, to apply to this project among others.

Anyway, thanks again. I've used your fork and built very nice App. And luck with all your projects.

Is your app public? If so, please, let me know about it. I would be very glad to see that my efforts are useful for others 😊, and I wish your app to be very successful 🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants