Giter Club home page Giter Club logo

installer's Introduction

Node.js Installer

This is an Electron application for installing, updating and managing versions of Node.js as well as npm.

The goal is to be far more humane and user friendly than traditional methods of installation. The focus is primarily new users to Node, who are just looking for the easiest way to get started.

To Develop

Please see the development guide for details!

installer's People

Contributors

addaleax avatar azat-co avatar delvedor avatar develar avatar evanlucas avatar felixrieseberg avatar fishrock123 avatar gibfahn avatar homosaur avatar joedoyle23 avatar marshallofsound avatar mikeal avatar zlatanvasovic avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

installer's Issues

update from v4.4.5 -> v4.4.7 fails without error

I love the idea for a native app to install Node :)

I just gave it spin. It showed me correctly that my node version is out of date and I could press the update button. And it seemed to have worked, but after it’s done it reverts to the same view again

screen shot 2016-07-01 at 17 30 45

Here is what the logs say:

$ npm start

> [email protected] start /Users/gregor/Projects/node-installer
> electron .

2016-07-01 17:29:21.339 Electron[44432:8884808] CFPropertyListCreateFromXMLData(): Old-style plist parser: missing semicolon in dictionary on line 3. Parsing will be abandoned. Break on _CFPropertyListMissingSemicolon to debug.
sudo: a password is required
installer: Package name is Node.js
installer: Installing at base path /
installer: The install was successful.

Fail to install new node version

OS: Ubuntu 16.04
Current Node Version: 6.11.3 (installed through nvm)
I also have the latest version of node as a repo (but it's not installed into the system)
node is not installed as part of the system it's installed locally by my user

node -v : The program 'node' is currently not installed. You can install it by typing:
sudo apt install nodejs-legacy

nvm ls: 
->      v6.11.3
default -> system (-> N/A)
node -> stable (-> v6.11.3) (default)
stable -> 6.11 (-> v6.11.3) (default)
iojs -> N/A (default)
lts/* -> lts/boron (-> v6.11.3)
lts/argon -> v4.8.4 (-> N/A)
lts/boron -> v6.11.3

ok now moving on to the problem. Nodejs installer does show that I have version 6.11.3 installed, and has the Update to v8.7.0 button available. It also has the latest verison buttons that let's you install the stable and current versions of nodejs.

When I click on the update version I get the following error:

Command failed: [object Object] undefined tar --strip=1 -C /usr/local -oxf /tmp/node-v6.11.4-linux-x64.tar.gz /bin/sh: 1: [object: not found

Looking at the console I get the following error:

/home/jl/installer/src/renderer/components/App.jsx:61
failed: [object Object] undefined tar --strip=1 -C /usr/local -oxf /tmp/node-v6.11.4-linux-x64.tar.gz
/bin/sh: 1: [object: not found
    at ChildProcess.exithandler (child_process.js:217:12)
    at emitTwo (events.js:106:13)
    at ChildProcess.emit (events.js:194:7)
    at maybeClose (internal/child_process.js:899:16)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:226:5)

attempting to install the stable version or current version from the latest versions button gives me the following error:

Error: Command failed: [object Object] undefined tar --strip=1 -C /usr/local -oxf /tmp/node-v6.11.4-linux-x64.tar.gz
/bin/sh: 1: [object: not found
    at ChildProcess.exithandler (child_process.js:217)
    at emitTwo (events.js:106)
    at ChildProcess.emit (events.js:194)
    at maybeClose (internal/child_process.js:899)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:226)

(just change v6.11.4 to 8.7.0 )

It seems to me that it's not being able to download the tar to install said version, but Im not entirely sure because even when i click on update to v8.7.0 it tries to obtain the v6.11.4.

I assume there might be a problem with nvm and installer (having read some of the issues).

At the moment I'm trying to get it to work so that I can get used to the software and contribute in the future if possible.

So before fixing this possible issue (that could be just my mistake for having nvm alongside installer) is there a workaround so I can get this working properly?

User did not grant permission.

Running the latest master, ead0461.

Trying to install a new node version.

First, this:

screen shot 2017-06-26 at 3 03 54 pm

Then:

screen shot 2017-06-26 at 3 03 04 pm

Renderer process console:

screen shot 2017-06-26 at 3 07 44 pm

Main process console:

sudo: a password is required

Include release notes for latest builds

At the very least, release notes for the latest builds should be included. This should eventually include a diff of release notes from currently installed build to latest, as well as highlighting security-related patches.

Proposal: Info about the release line

Hi all!
I've spoken with a friend of mine who is a programmer but is completely new to Node.
I showed him the Installer asking his impression and he asked me why the installer prompts two different versions to install and why the update to button is not always consistent with the highest version number on the bottom of the left bar.
As you can easily image the problem was that he wasn't aware of the Node release line and he asked me why we didn't write a little explanation about this.

The answer was pretty obvious, all of us know how the release plan works, so we develop the interface omitting this detail.
I have removed the code example (who was there just for beauty) and I've added a brief description of the release line and more useful resources.

The Node.js release line is divided in different stages.
The most important are *LTS* and *Current*, which are the Long Term Support version and the Latest stable release.
You can find more information about the release plan [here](https://github.com/nodejs/LTS).

What do you think?
The text is just a draft, feel free to change it.
cc @nodejs/electron-installer

node-installer

Introduce to electron-forge

πŸ‘‹ Hey there! I come to you at the request from @MylesBorins and @jasnell. I've been working with Electron for a while and I'd like to help out with some hard-learned lessons and some best practices.

First up: Build pipeline. Building is one of the hardest things in the Electron world, as there are countless things to consider for each platform, each native dependency, and each build target. We in the Electron maintainer's group have realized that it's the easiest place to get lost, so there's now a common CLI (similar to ember-cli or create-react-app) that handles the whole build/package/make cycle. Called electron-forge, it reduces the common Electron development operations down to simple commands.

Given that this repo is still in its infancy, this might seem like overkill. However, once you start adding native dependencies and want to build multiple targets (dmg, zip, exe, msi, rpm, deb), you'll be happy that you don't have to worry about the many things required to turn a bundle of JavaScript into an executable πŸ˜‰

Framework / compilation language

Currently we are using native ES6 for all the code, are we going to consider using something like typescript (which we get for free with electron-forge) to write our main/renderer code?

Also for discussion, in terms of the renderer currently using flexboxgrid and some standard HTML / CSS. How do people feel about a UI framework like angular / react or sticking with the super basic HTML layouts?

Just thinking as the main process scaffolding comes in we may want to think about these kind of things early on in the process

OSX: Play nice with version managers like nvm

With nvm installed, it seems that the install of an updated version doesn't quite work. After updating from the installer, the binary is installed in /usr/bin/local/, but $ which node shows that nvm still has the global node. (Example output: /Users/rylewis/.nvm/versions/node/v6.2.0/bin/node).

It would be nice to either detect that a version manager is being used and message something, or perhaps override the location of node (this might be a little destructive and may need to do some specific messaging).

Install native build tools by default.

This should definitely be enabled by default. The amount of times I have (and I'm sure other people have) skipped this step then tried to install native modules, only to face hours of headache, is insane.

image

Add window menu

The app currently doesn't have a window menu. You might see one when you run the app in developer mode, but said window menu will no longer be there once you compile the application (that's a feature implemented by the electron command).

Humanize all the text.

It is currently very terse. It should be much nicer and guide people along.

@nodejs/help @nodejs/inclusivity

Rename primary branch to main

We are going through all of the node.js repositories to rename the primary branch to main. Please see nodejs/node#33864 for more context.

I also don't see any githbub workflows so I don't think there should be issues with the rename.

Please let me know if there are any concerns otherwise I'll look to do the rename Friday May 4th.

Add proxy support

The Installer has issues when I'm behind our corporate proxy.

image

I haven't found network settings in C:\Users\<Profile>\AppData\Roaming\installer\preferences.

repost from `nodejs/version-management` - The Windows installer (a.k.a the 🐘 in the room)

So for some unknown historical reason node core has a Windows installer (probably to appease the MS gods)...
After a recent conversation with @ljharb, IMHO the installer should be in this WG's focus, since it's essentially a "management-challenged" version manager....
We are fielding issues as:

Which bring up the same issues that are discussed here, like:

  • where do we put the global node_modules?
  • Should we install npm or not, and where?
  • Does core want to officially support side-by-side multi-version, and if so how to switch versions (i.e. version manager yes or no)?
  • How to detect which version are installed?

Not to diminish from this WG's efforts in the least, and not intending to step on anyone's toes!!!
It's just that our questions are less "academic" since they are motivated by issues opened by users, since the Windows installer is unfortunately an existing core feature πŸ€¦β€β™‚οΈ So we need to answer them sooner rather than later...
BTW: Personally my prefered answer would have been "The Windows installer is deprecated, use the zipped package or a userland version manager" but it got push-back nodejs/node#4603 (comment)

/cc @tniessen @nodejs/platform-windows

Add License

Please add License info to the README. The package.json says it is Apache-2.0.

Add context menu

The app currently does not have a context menu (and is hence missing the default operations like Cut, Copy, or Paste).

Installer UI

Hi all,
while we are discussing about code style and other stuff, I want to open another topic: the Installer UI.

I made some experiments, and I've created this, what do you think?
Any constructive suggestion is welcome!

node js installer

If you like it, I can start to write some code :)

It works!

I just tried this thing out. It told me I have node version 6.2.1 and gave me an option to upgrade. I clicked the button and now I have the latest node. Magic!

✨ πŸ’» ✨

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.