Comments (19)
@davidmarkclements you are right, see #65, the readme was updated to document the npm install, but we need a npm publish for that to show up
@indutny @hhellyer see #49, want me to do the changelog/version/npm publish?
from llnode.
I don't mind if someone will make it work 😉
from llnode.
It would definitely be nice to have a simpler way to install llnode, especially on Linux.
I'm not 100% sure on using npm to install things that aren't going to be node code but there's also the possibility of adding a javascript API to llnode in which case it would make more sense.
It could write a plugin load command to ~/.lldbinit instead of needing root access to install the plugin in lldb's plugin directory. There will probably be issues around using the right version of lldb, on ubuntu it's possible to have multiple versions installed as lldb-3.8, lldb-3.9.
I'm happy to take a look at doing this. Should we reserve the name llnode on npmjs.org?
from llnode.
Sure, go ahead!
from llnode.
Two things: make sure you register with a version that llnode
has not used, like 0.0.0. Also, we should publish some basic install instructions there in the mean time.
from llnode.
I've grabbed the llnode npm name. I've added @indutny as a collaborator. (Assuming that isn't someone else with the same picture on npmjs.org.)
I assume the npm installer should work for Mac and Linux (as a minimum) and I'll probably look at what the brew installer is doing.
from llnode.
(Yep, that's me)
from llnode.
@indutny Making progress on this but I've got a question, why did you use llnode.gyp instead of binding.gyp?
The background to this is that for some reason npm doesn't copy llnode.gyp (Edit: it doesn't copy it even if you add a files entry) I think there's something special about .gyp but I don't know what. Also you can't stop npm copying binding.gyp.
I may end up changing the build process slightly, I'm also trying to figure out if it's possibly to use the gyp packaged with npm rather than cloning it during the build process so the only thing that may need cloning is the lldb headers.
from llnode.
I've pushed a branch https://github.com/hhellyer/llnode/tree/npm_prototype which you are welcome to try however it's not final, part of the reason for pushing to github is to make it easy to test it on more machines.
from llnode.
@hhellyer splendid! Will take a look.
btw, I forgot to mention it, but I have solved similar problem in bud: https://github.com/indutny/bud
from llnode.
Cool, I've flattened the branch a bit and copied your solution to .gyp. I still need a better solution for not cloning gyp than my current one but I'm going to do some testing with different installs of lldb first in case I hit any show stoppers.
from llnode.
@hhellyer looks pretty cool except for the JS code style ;) Feel free to open PR whenever you'll feel that it is ready and we will collaborate there on it!
Thank you
from llnode.
I've updated the prototype, if anyone wants to try it. It's a bit neater and now outputs the lldb command to use to load the plugin.
I've a couple of questions before I turn it into a PR:
- Is there any use in putting up this up as an npm, for example with a version of 0.0.1, for testing? (Does that behave differently to a git install?)
- Does anyone have a better idea for locating gyp? (Better than my use of npm explore in configure.js!) I'm trying to avoid having to download if as it is possible to avoid doing any git clones if the lldb headers are already on the machine.
It can be installed from git with:
npm install hhellyer/llnode#npm_prototype
from llnode.
@Fishrock123 - Can I close this now? (Or can you?)
from llnode.
just to note, I put this together for Mac and Ubuntu a few months ago
It's published to npm
$ npm install -g llnode-setup
$ llnode-setup
Uses a slightly different approach - detects OS and then runs the install steps for that OS
Extendable by adding .sh files and adding detection to the cmd.js
file
If you're thinking there's a more suitable approach, I'll also happily donate llnode-setup
namespace
(cc @lucamaraschi)
from llnode.
oh wait - the github readme says you can npm install llnode
but the npm readme hasn't been updated
from llnode.
@rnchamberlain that would be awesome! Thank you!
from llnode.
@indutny @hhellyer right oh, will do. I'll need the powers on llnode to push the changelog and the release/tag, also on https://www.npmjs.com/package/llnode to do the publish - thanks.
edit: @hhellyer did the npm permission - thanks
from llnode.
Closing, fixed by #60. #77 is the tracking issue for npm install -g llnode
.
from llnode.
Related Issues (20)
- llnode failed to install HOT 12
- Not showing details of JS frames on node v16.14.0 HOT 6
- ptrace: No such process. HOT 2
- Document User Journey HOT 11
- core dump collaboration call HOT 27
- Supported Features Matrix HOT 1
- Reinstate 19 Nightly Build HOT 1
- Apply env variables to test timeouts consistently
- 'v8 findjsobjects' command is failing with below the stack trace - need help HOT 4
- discussion: Re-establish automation to detect breaking changes HOT 2
- refactor: use `debug_helper`
- tests: Fix flaky JSArrayBuffer test HOT 3
- bug(print-source): libc++abi: terminating with uncaught exception
- no coverage for "v8 nodeinfo" HOT 4
- [question] emtpy result when read core file HOT 2
- cannot load core file HOT 1
- Consistent crashes with `v8 findrefs -s` HOT 1
- Unable to load LLDB with LLNODE plugin HOT 2
- [Question] examining coredumps on Mac x86 HOT 1
- [Question] Is there any way to get the size (shallow or retained) of a specific object?
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 llnode.