-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
Using JSR package in Vite running in Deno #23929
Comments
Side note: since I could not make it work with Vite I used |
seconding this, because esbuild doesnt seem to support my use case. I am trying to use jsr packages in a svelte web app. Attempting to use this loader in tandem with the svelte plugin seems to not be possible import * as esbuild from "npm:esbuild@0.20.2";
import sveltePlugin from "npm:esbuild-svelte";
// Import the WASM build on platforms where running subprocesses is not
// permitted, such as Deno Deploy, or when running without `--allow-run`.
// import * as esbuild from "https://deno.land/x/esbuild@0.20.2/wasm.js";
import { denoPlugins } from "jsr:@luca/esbuild-deno-loader@^0.10.3";
const result = await esbuild.build({
plugins: [
sveltePlugin({
preprocess: denoPlugins({
configPath: './deno.json'
}),
}),
],
mainFields: ["svelte", "browser", "module", "main"],
conditions: ["svelte", "browser"],
entryPoints: ["./src/main.ts"],
outfile: "./dist/server.esm.js",
bundle: true,
format: "esm",
logLevel: "info",
});
console.log(result.outputFiles);
esbuild.stop(); Depending on which plugin I declare first, Ill get |
just an update on this point:
I was able to get vite + jsr working by just fully using npm to handle node_modules management. E.g. deno run -A create-vite --template svelte-ts
npm install
npx jsr add @andykais/ts-rpc it still feels bad that nodejs is necessary to develop vite on deno, but this at least will let me develop (besides dependency management) and build for production in deno |
Also experienced that issue, while I was building a project with E.g. I could not to use (off-topic: I also failed to use P. S. there are a few attempts to build vite plugin for deno, e.g. vite-deno-plugin - but it's limited to |
There is an official rollup plugin to resolve Deno modules that works with Vite. However, it's slow and doesn't scale well because If Deno exposes a JS API instead of |
fwiw @m0rphed, I solved this by using the |
Hi,
I'm really excited about JSR and I started migrating the few packages I maintain (mostly for myself given their popularity 😅) from
Node + NPM
toDeno + JSR
:It worked quite well so far but I ran into a issue: In some of my project I had a folder with a Vite project to showcase an example of the package.
I managed to get Vite running in Deno and using
--node-modules-dir
and I can import npm packages fine but not JSR packages.I see 2 potential solution to this:
1. Vite plugin
Option 1 would be to have a Vite plugin for Deno that would implement the same module resolution.
There is already some existing but I did not found any that supports
jsr
.On that note, are there any plan to expose the module resolver from Deno to make it easier to create such tool ?
The downside of this solution is that it would be a Vite only solution and won't work for other bundlers.
2. Expose JSR packages in
node_modules
Another option would be to make Deno also expose JSR packages in
node_modules
when running--node-modules-dir
, this way the classic Node module resolution would also work.The text was updated successfully, but these errors were encountered: