Git Product home page Git Product logo

Comments (5)

enpitsuLin avatar enpitsuLin commented on May 13, 2024 3

There is a simple way to use vite is use vite api.

Just build a script that uses the vite plugin which add logic during writeBundle to run the packaged product in qode.

I made a react-based template, vue and svelte also should be work : react-nodegui-vite-starter

from svelte-nodegui.

msyfls123 avatar msyfls123 commented on May 13, 2024 2

I have tried to simply bundle svelte-nodegui App with Rollup and found it wouldn't be executed. There are several problems:

  • *.node should be handled like native-addon-loader (maybe @rollup/plugin-url is qualified enough)
  • nodegui itself has PostCSS and addon unknown QObject export bindings issues

So I just set @nodegui/nodegui as externals, and it could be left in node_modules without being bundled which make the Application succeed to be executed. 🤣🤣🤣

Here is my example project, hope it could inspire you.

from svelte-nodegui.

shirakaba avatar shirakaba commented on May 13, 2024

Thank you!

Our webpack config is quite simple: https://github.com/nodegui/svelte-nodegui/blob/main/demo/webpack.config.js

I'm unfamiliar with Vite, but to port it to something like Rollup, I think the main thing that would be needed would be a Rollup equivalent of native-addon-loader (which I'm unfamiliar with). Beyond that, you'd pretty much just take the Svelte starter template (which uses Rollup) and fill in the differences.

Vite is famous for using esbuild under-the-hood, but I'm not sure how that works for Node environments (it is typically used in browser environments).

Contributions welcome!

from svelte-nodegui.

FractalHQ avatar FractalHQ commented on May 13, 2024

Thanks @msyfls123! I will take a look!

@shirakaba As far as Vite goes, it's built on rollup and supports all rollup config options.

Sveltekit is built on Vite which is built on Rollup so it should be possible. Sveltekit builds for node by default with svelte-adapter-node. I believe it leverages ESBuild's native node bundling support.

As far as using .node addons in Rollup, I'm wondering if rollup-plugin-natives is what we would need?

from svelte-nodegui.

shirakaba avatar shirakaba commented on May 13, 2024

So I just set @nodegui/nodegui as externals, and it could be left in node_modules without being bundled which make the Application succeed to be executed. 🤣🤣🤣

It's a valid workaround. I think I might have gave up and done the same with phin as well (it's a really awkward library). It may have consequences for when you come to package the final app, however, so let's try to get past it!

Sveltekit is built on Vite which is built on Rollup so it should be possible. Sveltekit builds for node by default with svelte-adapter-node. I believe it leverages ESBuild's native node bundling support.

Oh nice, sounds promising :)

As far as using .node addons in Rollup, I'm wondering if rollup-plugin-natives is what we would need?

That certainly looks like it might do the trick!

from svelte-nodegui.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.