-
Notifications
You must be signed in to change notification settings - Fork 30.1k
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
node as an alias for iojs doesn't work #895
Comments
The biggest issue I see here is that People want to install a bin globally from npm once and then have that work with whatever platform they are currently usually globally (either io.js or node.js). |
Even just the use of npm itself would be ambiguous with both io.js and node.js installed. When I do something like The only way around that I can see is having iojs use differently named tools with different shebangs: ipm, io-gyp, etc. That adds some unwanted maintenance burden. Personally, I'd rather see that effort going toward resolving issues preventing merging with Node Foundation. |
Maybe we're asking the wrong questions here. Taking a step back, node.js & npm were never built to support parallel versions running side by side. io.js has inherited this and also cannot live effectively in parallel with other versions. So, what would it look like if io.js/npm were built to allow multiple versions installed and working in parallel? My guess is that it would look something like the way we're handling conflicting versions of dependencies living in parallel, we localize them. It's come up more than once, I think the last person who brought it up was @rauchg, but it could be better for applications to define the version of the platform they want locally and manage the installation/upgrade of it with If we think this a good idea it might be worth collaborating with npm on the NG work and try to ensure that the next version of the platform is built with this kind of thing in mind. |
I think iojs should consider the multiple parallel versions scenario, specially in light of the frequent release cycle. |
i'm -1 on that. keep the alias to node, @mikeal is right about one thing:
|
What about changing the binary name back to
Is that the real question here? Whether io.js should officially drop node-compatibility from its goals? |
IMHO iojs should have its own binary name. not node. |
What I've done in many years myself is to install node at different locations. And then all global installations also lives at that location. Eg. And then I have a symlinked directory which is added to my path. In addition I have some scripts which make it easy to switch between versions. The drawback with this solution is that I have to reinstall global modules for each version of node I have installed. The benefit is that I never have problems with binary modules which need to be rebuildt. io.js is just another version of node. Lets document that better and make the tools better at handling multiple version. |
For folks working on npm packages, we need to test against both the latest stable Node, and the latest stable Io.js. So, it would be lovely if At the moment, if you attempt to do this,
|
@jashkenas If you test against different versions (I'm assuming you'd be testing against more than just the one latest stable version), wouldn't a version switcher be the more appropriate solution: |
maybe this is not the place, maybe it's already answered but I'm new to node, github etc. and iojs rocks!
|
Typically Perl does not have an issue with multiple versions living side-by-side. Typically, if you were to follow the Perl Way(TM), scripts would always assume the executable is |
@dougwilson That works assuming that you'd only have perl scripts starting other perl scripts. But if you use bash scripts or Makefiles or python (sublime plugin) or ..., that approach is not enough. Jenkins' |
I work in a company with 15 developers. All of them know what Node.js is (even though our product is written in Java), but only me and another guy know about io.js. Also, in addition to other points already highlighted, let's not forget all the tooling embedded in editors/IDEs. |
For Windows users, this is not a matter of disliking the name or breaking in rare situations but it is breaking for all packages which depend on C++ module, which are built against io.js and executed with Please make sure whichever solution this discussion yield, it works on Windows as well. |
Is this worthwhile bringing to the TC? it seems like quite an issue for windows users. |
I don't think we have a question to ask of the TC here yet. I don't see a clear solution being presented and a TC discussion would end up being as much of a bikeshed as this is. |
Nevermind for now. Let's see how things fare after 3d46fef. |
Before releasing iojs 1.0 we decided that we'd support
node
as an alias for iojs.The reasoning was that many npm packages hard-code the binary name to be 'node'.
This has upset people in different categories, generally the people that want to use iojs side-by-side with node complain about the (sym)link where others complain that the symlink solution doesn't work well enough.
In the meantime npm packages remain dependent on the binary name being 'node' because we claim that this is fully supported and it works most of the time.
I move to for alternative solutions asap and eventually deprecate the 'node' alias.
A couple places where a hard-coded node alias turns up:
The text was updated successfully, but these errors were encountered: