-
Notifications
You must be signed in to change notification settings - Fork 3.7k
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
[Question] Deno Integration? #3146
Comments
@DemGiran we're keeping an eye on deno, but so far there are no plans / user requests to get a better story there.
Out of curiosity, how hard would it be? |
https://github.com/rollup/rollup/wiki/pkg.module it needs a web optimized module entrypoint in its package.json manifest |
Since we rely heavily on |
Closing this since there are no plans for this for now. |
Is the situation still same in 2021? I think deno has improved a lot. And deno security + single binary feature are too good for many people like me to ditch deno. I hope the decision will be reconsidered in future. Thanks |
I’m also interested in Deno support. |
@lucacasonato Wondering whether you could add a general comment on this, since you wrote the puppeteer port for Deno. Seems like there's support for child_process.spawn. Were there many hoops to jump through while porting Puppeteer? @aslushnikov Wondering whether this is worth re-opening, or still something to postpone for now? |
Yeah... let's not stiffen development Microsoft ;-) |
I would love to be able to use Deno with Playwright. Please make it happen! |
I'm looking at the possibility of using puppeteer or playwright as a simple way to make desktop apps with Deno (not for testing). Conceivably, using Playwright's API to control a non-headless browser window would be a good way to spin up a UI for Deno and then passing messages between the browser window and the Deno "backend" (on localhost); basically local RPC calls. Eventually, someone could provide a carefully crafted |
There are some I'm a huge fan of Deno and Playwright, so hopefully a native option comes before that. I mean come on, Deno is even listed on MDN and Web Platform Tests now =D |
I, too, would love to see this. Am only waiting on Deno support to begin using and promoting Playwright in all my apps and to all my students. |
Hey - just to chime in, I would love to have Deno support as well. |
+1 for deno integration in case you guys are counting votes. Keep the great work team! |
I don't have a ton to add to the conversation other than that I would love to have Deno support as well. |
Deno is an interesting runtime as it is written by Ryan Dahl using his experience regret points from his earlier node.js work. It appears the deno project has come a long way since this issue has been created. As of this writing, https://github.com/denoland/deno has reached 85+K stars on Github. Please re-consider adding support for this runtime. |
` import { chromium } from 'npm:playwright'; (async () => { export function add(a: number, b: number): number { // Learn more at https://deno.land/manual/examples/module_metadata#concepts I haven't gotten this to work due to SIGTERM or websockets / '--remote-debugging-port=8335' not taking affect. Now that deno is getting npm module support like above, anyone have any luck here? note: Was trying with wsl2 / linux and windows |
I also tried to get Playwright working with Deno, but didn't succeed. In case anybody wants to give it a try, here is a snipped: import { chromium } from 'npm:playwright';
async function main() {
// const browser = await chromium.connectOverCDP("ws://127.0.0.1:37305/devtools/browser/d8da9c70-6b9c-45a4-8582-c26095adb110");
const browser = await chromium.launch({
headless: false,
});
const page = await browser.newPage();
await page.goto('http://example.com');
await browser.close();
};
if (import.meta.main) {
main()
} You can run this via The error is as follows:
I also tried to connect to a manually started Chromium instance. To give that a try, switch the Take the path to the executable from the error above (i.e.
This will print a line like:
Edit the Run the script again via The error I get is as follows:
The Interoperating with Node and NPM section of the Deno documentation might be useful (unfortunately, it doesn't seem to be 100% up-to-date. The |
seems like support for SIGHUP and SIGBREAK is supported in libuv. So opened a request inquiring about this effort above. denoland/deno#16298. It may not be a solution to get this running all the way. But at least a step. @d4h0 I get this as well when I don't use love the callout about websockets, as libuv sets these up different than tokio. So I still believe there is some compatibility between these two libraries that need considered. |
According to denoland/manual#408, it looks like they are rewrite the manual from scratch. They do agree that it is confusing. Also can we get this reopened? This seems to clearly be an active thread. |
I would recommend keeping this closed. playwright is not actively working on a solution. deno itself will be responsible for that solution. There may be further defects after deno does support playwright. I am wondering if reopening this then. Or a through a new defect. |
For anyone that stumbles upon this, it looks like playwright doesn't want to support Deno but Astral exists with a very similar api. It's not as mature as playwright but it is pretty perf. |
@woody34 thank you for sharing! |
thanks @woody34 is very similar api playwirght 🙌 |
FYI: Deno support for Playwright is coming denoland/deno#16899 (comment) |
Hello, and congratulations on your project. I see that you are heavily invested in trying to integrate it with platforms other than Node. Thank you for maintaining an official Python repo. Have you thought about Deno? https://github.com/denoland/deno
How about making the npm package play well with skypack.dev? This might make it possible to import Playwright directly from npm? I think there is a potential opportunity there with minimal (if any) additional technical cost. Thoughts?
Thanks for the library! <3
The text was updated successfully, but these errors were encountered: