15

If you only have the zip file to install angular-cli with - how can it be installed without an internet connection?

Jay Ordway
  • 1,708
  • 2
  • 11
  • 33

3 Answers3

13

With that ZIP only you will not be able to achieve that.

Because within the bin folder, the ng still needs some dependencies.

In order to do that:

Now you'll be able to run the CLI on an offline computer if you share that zip by doing:
- Unzip the CLI folder with the node_modules in it
- /path/to/the/folder/bin/ng new my-project

BUT. As this computer is offline, you'll only be able to scaffold a new project without installing it's required dependencies.

Now, if you want to build a project on that offline computer, you'll need something more:

On the online computer:
- install @angular/cli yarn global add @angular/cli (or use your zip)
- create a new empty project while online: ng new base-project
(wait for yarn install or npm install to finish)
- zip the node_modules folder, the one within the new project
(as node_modules_backup.zip for ex, and brace yourself... It's going to take a long time I guess)

On the offline computer
- Share the ZIP from the new project (with USB for ex) - Create your project: /path/to/the/folder/bin/ng new my-project --skip-install
- Unzip the node_modules_backup.zip into the newly created project

Now running /path/to/the/folder/bin/ng serve should work.

tony
  • 431
  • 4
  • 12
maxime1992
  • 22,502
  • 10
  • 80
  • 121
  • 1
    Did you try this? Some repos (notably Angular ones) doesn't contain pre-built files in their repos. This means that there are no JS files in Github archive, only TS. – Estus Flask Dec 14 '17 at 21:31
  • So what's the problem? Cli can compile TypeScript projects without any trouble. I don't follow. Try it and you'll see :) – maxime1992 Dec 15 '17 at 06:40
  • Resulting zipped package won't be workable. cli can't compile itself. Try your own answer and you'll see. – Estus Flask Dec 15 '17 at 06:51
  • 1
    I think one potential issue to note with this is if there may be differences in the platforms between the mentioned offline and online computer, since the node-sass package requires the download of a binary that is platform dependent. If there is a way to circumvent this problem, I am unaware. I know the binary can be kept locally and installed via the local file instead of public repo if given the correct command line argument. – Jay Ordway Dec 15 '17 at 09:05
  • I agree this is a good solution, we ended up making a private npm repo behind the corporate proxy. – Jay Ordway Dec 15 '17 at 09:06
6

----online machine-----

  1. Install node by using the executable files downloaded from the official node website.
  2. Install the @angular/cli globally on the on-line machine.
  3. Check the C:\Users\Admin\AppData\Roaming folder.
  4. Zip the npm and npm_cache folder.
  5. Transfer the above zip file and node executable to the offline machine.
  6. Create the new project in angular
  7. zip the node_module folder inside the created project and transfer it to the offline machine.

----Offline Machine------

  1. Install node from its executable
  2. Unzip the npm and npm_cache folder and move it to the C:\Users\Admin\AppData\Roaming folder.
  3. Run the following command to install the @angular/cli and its dependencies
npm i @angular/cli -g --cache MY_CACHE_FOLDER --cache-min 999999999 --no-shrinkwrap
  1. Now create the new angular project. It will show some errors but don't worry.
  2. Unzip and move the node_module folder inside the new project.
  3. Now, you can work/run on the project as usual.
SeyedPooya Soofbaf
  • 2,654
  • 2
  • 29
  • 31
GRaj
  • 61
  • 1
  • 3
3

This would be a good solution for your case.

npm i @angular/cli -g --cache MY_CACHE_FOLDER --cache-min 999999999 --no-shrinkwrap

You can find full article here.