
Show HN: Ndm – Npm Desktop Manager - 720kb
https://720kb.github.io/ndm
======
jamescostian
OT: I noticed in the GitHub repository that there is `.jshintrc` as well as a
`.jscsrc` and `.eslintrc`

Why are you using 3 different JavaScript linters, instead of just 1?
Especially since one of them (JSCS) was merged with the other (ESLint). There
was a blog post about this in April[0] and even the front page of JSCS says
that it was merged with ESLint[1], so why use both of them, in addition to yet
another linter?

[0] [http://eslint.org/blog/2016/04/welcoming-jscs-to-
eslint](http://eslint.org/blog/2016/04/welcoming-jscs-to-eslint)

[1] [http://jscs.info/](http://jscs.info/)

~~~
720kb
that's because we setted up the projects months ago.

if you can please contribute, just PR PR PR PR :)

------
diggan
In general I like Electron, it makes it easy for web developers like me to get
into making desktop apps. However, if you're not building it cross-platform,
what's the benefit of Electron? If you disregard easy for web-developers.

~~~
bluejekyll
Let's flip this around, what are the benefits of writing a native app when
there is Electron? It's democratizing cross-platform Dev tools in one of the
most standard rich environments, the browser.

IMO, the question should always be, why native?

~~~
untog
> Let's flip this around, what are the benefits of writing a native app when
> there is Electron?

\- Speed

\- Native UI

\- Native OS hooks

~~~
bluejekyll
IMO those are specific choices for specific types of applications, when most
people just need a simple front end for their app.

~~~
eivarv
What about the energy performance hit that electron apps introduce?

~~~
bluejekyll
I haven't noticed it, and use Atom (Electron based) on a Laptop often. It's a
MacBookPro, so already one of the better in terms of battery consumption, but
I use it disconnected from Power for upwards of 5-6 hours at a time with no
issues.

------
fdim
Not to nitpick, but I fail to understand the problem you are trying to solve.
Even if something like this would be bundled with some IDE, the reason is
unclear to me. It's nice as a side project to get used to electron though.

~~~
jamescostian
In their README, they have a section describing why one should use this
project[0] which essentially says something like this:

Not everyone knows how to use the npm CLI, and they oftentimes cannot use it
for "intern/office/job" reasons, or they are simply unwilling to use the cli
at all.

However, the learning curve for the npm CLI, at least for the tasks that this
project accomplishes, is not steep at all. For example, installing a
dependency is as simple as `npm install dep` where `dep` is the name of the
dependency you want to install. Furthermore, I have never heard someone say "I
couldn't use npm because it's a CLI and my job does not allow me to use
those", nor have I ever heard someone who wants to use npm say "I am not
willing to use a CLI"

I'm curious, in what job setting is one not allowed to use the npm CLI? And,
since this project itself uses the CLI[1], wouldn't using Ndm be just as bad
as using the npm CLI?

[0] [https://github.com/720kb/ndm#i-love-the-shell-why-use-an-
app](https://github.com/720kb/ndm#i-love-the-shell-why-use-an-app)

[1] [https://github.com/720kb/ndm/blob/master/lib/js/npm/npm-
api....](https://github.com/720kb/ndm/blob/master/lib/js/npm/npm-api.js#L96)

~~~
bluejekyll
To say nothing of the fact that a programmer can't use the CLI? What
programmer is that?

I mean, I'm all in favor of tools that integrate into the IDE, that reduce the
overhead of running commands, but not being able to use the CLI would be a
huge red flag.

In fact, you now have me considering writing a new interview test to make sure
people are literate with the CLI.

~~~
untog
> To say nothing of the fact that a programmer can't use the CLI? What
> programmer is that?

People who use Excel, maybe. There are a _lot_ of people who do "programming"
in their job without their job title containing "programmer". I can absolutely
believe that these days there are people out there brewing up little JS
scripts to help them with their day-to-day tasks.

~~~
mixedCase
>I can absolutely believe that these days there are people out there brewing
up little JS scripts to help them with their day-to-day tasks.

I can't. At least if we're talking about people who can't use a CLI or read
JSON.

~~~
untog
I personally got my start in programming through Access -> VBA -> VB.NET -> C#
-> JS/Ruby/Python/whatever. The first four involved little to no CLI work.

------
dkns
Why have page that tells almost absolutely nothing about your project? I could
understand if it was aimed at non-tech people but I have serious doubts that
anyone that isn't developer will be interested in your project. If I read
title on hacker news that says 'Npm Desktop Manager' I would like to be able
to read a little more about it before I decide to use it without having to go
to github. Like, the information that there is no stable release is only in
FAQ section of github project.

~~~
jonursenbach
I thought it was pretty clear what it was by the screenshot on the page...

~~~
dkns
It is but additional info like release version or minimum required npm version
would be nice. Or have any info from 'Recommendation' and 'FAQ' section from
github displayed.

------
jashper
168 mb for a dependency manager seems a bit steep

~~~
guessmyname
45M for the downloaded DMG file;

387M of extracted/mounted data;

314M in the Contents/Frameworks directory _(which is where Electron is)_ ;

73M in the Contents/Resources directory _(which is where the application is)_
;

73M is actually the size of the "Contents/Resources/app/node_modules"
directory :D

~~~
720kb
Yes, the whole js app is a dist/ folder and weight does not exceed 1mb i
guess, the outer weight is the price to pay

------
blauditore
Offtopic: There are merely 40-50 words on that page, but 3 different font
families and several sizes and weights. Almost every line is styled
differently.

~~~
720kb
hi, thanks for the feedback, you can PR on Github if you want feel free
seriously we'll be glad a lot!

------
vuldin
This looks nice. I'm really tied to using creationix nvm at the moment and it
seems like these two libraries would be competing for control over how to
manage node/npm. There's no GUI on nvm though, so if this tool can handle
installing multiple different versions of node/npm then maybe it is a better
alternative.

~~~
720kb
thanks! nvm, node, npm, yarn, as well as brew for example, and so on: all
different tools made for different scopes.

------
duck2
Next: Nwm- Npm window manager based on Electron. Works on Mac and sometimes
Ubuntu.

------
SlashmanX
Good job. I think it's useful purely for the fact that it can tell you the
latest available version for each of the packages in your project. It's handy
to have that at a glance

~~~
720kb
That's what this is supposed to be/do/handle/visualize/inform/etc/

Glad that you find it useful, many thanks!

------
intralizee
This is comparable to what JetBrains has built into their IDEs for viewing
project modules with option to update.

I like this solution better because it manages all projects compared to
opening each project separate in an IDE.

A few commands in my terminal can be equal in functionality to what this app
does but I can see myself using this app regardless.

~~~
720kb
thank you for your impressions!

------
philliphaydon
It looks great, but mac only?

Isn't Electron meant to be cross platform? Shouldn't this also work on Windows
and Linux?

~~~
720kb
OFC, Electron is cross-platforms.

This is a beta release, due the fact we need to spot out many other possible
and common bugs/problems before to make it really stable, that's the only
reason why ;)

~~~
fdim
Don't forget that you can have platform specific bugs ;)

~~~
720kb
Ofc, just you know ... too much meat on bbq it will be quite degenerative :)

Actually, the API used is require('npm') that mean if it gets stable on OSX
there will be quite 99% possibilities it will be stable the same on Linux and
Win. Then templating and releasing will be quicker ;)

------
koolba
What's the point of this? By that I mean what would you actually use it for?

Is this a GUI version of nvm and if so, seriously who would use it? The whole
point of nvm is to be able to pop in/out of node versions as you're working on
a project. That doesn't make any sense for a global GUI.

~~~
SlashmanX
It's for npm, not nvm. It shows the installed packages in a project, the
version that is installed and the latest available version which is handy. You
can install/update packages too but don't see much use for that since the CLI
is there but the displaying of info is decent.

~~~
koolba
Okay now I get it. So it's a GUI to see what's in use by a given project. I
mistakenly thought it was a tool for managing node installations.

I guess the git analogy would be something like gitk?

~~~
SlashmanX
Yeah sort of. I wouldn't use it to replace npm CLI or anything (even though
you can), but like I said being able to glance at installed modules and see
the different versions (installed vs latest) is a nice thing to have.

------
aswerty
Congrats on shipping!

~~~
720kb
Oh well thanks :)

------
tokenizerrr
(for Mac)

~~~
720kb
(beta) i forgot that too sorry ;)

------
sickbeard
npmDM?

~~~
TazeTSchnitzel
NPM Package Manager Desktop Manager

~~~
sickbeard
Node Desktop Manager (whatever that means)

