Comments (18)
That's awesome! Looking forward to try it!
Really appreciate your time and effort in developing dirac!
from dirac.
I believe all pieces for first-class nodejs support are in place:
- you run your nREPL server, with Dirac Agent
- you add Dirac runtime into your nodejs app
- you can use Dirac DevTools to debug your nodejs app[1]
#3
is very recent addition to DevTools, it should work, but Chrome devs are still fixing bugs.
#2
Dirac runtime should not care if it runs in browser context or nodejs context (I believe)
I have never tried this setup myself. It would be cool to create a sample project for nodejs app working with Dirac. Unfortunately I'm not going to spend time on this task ATM.
[1] https://medium.com/@paul_irish/debugging-node-js-nightlies-with-chrome-devtools-7c4a1b95ae27
from dirac.
thanks, I shall upgrade my node to new version first
from dirac.
I just tried it in node 7.4.0 and dirac 1.0.0.
Devtool console prints out a message "Feature :repl cannot be installed. Unsupported browser ."
Here is a screenshot with more details.
My guess is that node doesn't has certain browser properties that dirac depends on (btw, cljs devtools also failed to install, above is with cljs devtools feature disabled)
from dirac.
we will have to relax this condition:
dirac/src/runtime/dirac/runtime/repl.cljs
Line 20 in e92a3ab
you might try to patch this function and then call dirac.runtime/install!
by hand
from dirac.
@darwin Thanks for the hint!
Hit another dependence on js/document. It looks like part of dirac client code has to be injected into chrome-devtools://devtools/bundled/inspector.html ?
Screenshot
from dirac.
ok, set *boostrapped?*
to true prior install! call:
after install call (brepl/bootstrap)
by hand
let's see how far you can get...
from dirac.
ah, scratch my previous comment, I don't have time to reply now. Maybe you could figure out another way how to implement install!
on your own. Maybe set! *boostrapped?*
and *installed?
to true and call (brepl/bootstrap)
from dirac.
That didn't allow me to do what you suggested. Instead, I tried to comment out
then call (boostrap-if-needed!) by hand. No error in js console, but dirac console won't start after clicking the button on toolbar.
from dirac.
I was able to make it work here on my Mac. But it will require some deeper changes. I'm pretty confident I will be able to provide an example project configuration by the end of this weekend.
from dirac.
Try to upgrade to v1.1.0, basic support should be in place:
https://github.com/binaryage/dirac/releases/tag/v1.1.0
from dirac.
Hi @darwin, I did a quick test (not setting up external source-map serving yet). Basic feature works. Just want to let you know a few differences.
-
you said in the doc, REPL eval only works at debugger point. However, my dirac repl seems working even not at debugger point.
-
i got CLJS DevTools errors when Dirac hits a debugger point.
from dirac.
Ok, thanks for the feedback. I'm not sure about that REPL eval. Could have been some glitch in my setup.
That CLJS DevTools Error is unrelated to this issue. It is not even CLJS devtools bug. You are likely to see similar stack trace event without cljs-devtools. It looks to me that Promesa throws when someone wants to print its value via IPrintWithWriter protocol.
from dirac.
Yes, you are right. That's an issue from promesa. will report it there (i did a local fix that works).
Thanks again for your help!
from dirac.
Released in v1.1.0.
I don't hear any complaints. Feel free to reopen in case of bug reports.
from dirac.
This is with dirac node support. Getting
Internal Dirac Error Request Debugger.getPossibleBreakpoints failed. {"code":-32601,"message":"'Debugger.getPossibleBreakpoints' wasn't found"}
It seems triggered asynchronously, as well as when stepping in debugger. Please see sreenshot attached.
from dirac.
This looks like out-of-sync debugger protocol between Devtools and Node.js.
In case of similar troubles, you should be using nightly builds of node.js:
https://github.com/binaryage/dirac/blob/master/docs/node.md#nodejs-version
from dirac.
Yes, that seems the case. Thanks!
from dirac.
Related Issues (20)
- On Dev Tools, how can I switch from Console to Diract? Or, in other words, how can I execute step 5 of the Quick Start Guide?
- ns/as-alias not supported
- TypeError: this._prompt.belowEditorElement is not a function HOT 2
- Error: uiSourceCode expected to have scriptFile associated
- Sources > Filesystem > "Add Folder To Workspace" not working in Dirac 1.2.37 HOT 8
- Need *source-map-data-gen-col* binding HOT 1
- Dirac window is blank on startup in Dirac 1.2.38 HOT 2
- Internal Dirac Error TypeError: target.emulationAgent(...).setFocusEmulationEnabled is not a function HOT 1
- Custom formatters not always applied HOT 1
- Internal Dirac Error Cannot find context with specified id
- Recipe for build.boot HOT 1
- Add electron support HOT 2
- first
- windows installation HOT 1
- Run Dirac CLI in the background HOT 2
- Loopback mode and pausing on a breakpoint HOT 2
- Does dirac need a proxy ? HOT 1
- Failed to create a ProcessSingleton for your profile directory HOT 1
- Missing is<Browser> methods with recent versions of ClojureScript
- I can't run Dirac on MacOS, it keeps complaining about org.clojure/data.json - even though it is listed as a dependency HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dirac.