Can you use Cordova in an offline intranet environment? - node.js

In the government organisation I work for we have many workstations on a closed intranet network. There's a way to get internet but that doesn't work for every application.
I'm doing a bit of research to Cordova and Phonegap, and I'd like to know if it's possible install Cordova and compile projects with it, all while fully offline.
I can install Node.js, the JDK, the Android SDK and ANT fully offline. However, the installation command for Cordova is 'npm install -g cordova'.
Is there a workaround for this? I know there's a source zip file download but I simply don't know where to put all those files.
Also, upon building a project with Cordova I can see it checking for latest versions of plugins on github. I think it's possible to download the plugins offline. But would the build process succeed if the plugins version checks fail?

try npmbox, it is the new name of npmzip which will allow you to install offline npm packages by one file

Related

Does "npm install electron" also downloads chromium?

I'm trying to start the development of an electronJS app at my company, but I'm having a lot of trouble to install the framework by the command line "npm install electron". I have consulted the TI and our guess is that when running this the npm command, it tries to download chromium or other executables files and because of that our company proxy blocks the downloads of these files. I have installed chromium using a different way that is permitted by the proxy, so having chromium installed is not a problem. So summarizing I have two questions?
Is chromium really downloaded with "npm install electron"?
Is there any way I can install electronJS not using "npm install electron" or without downloading chromium?
I hope you can help me,
thanks
Note: I can't download any source code from github too
Yes, ElectronJS comes with Chromium. The application windows you see are Chromium instances.
It's also stated on their web page under "Web Technologies".
Electron uses Chromium and Node.js so you can build your app with HTML, CSS, and JavaScript.
Another place from which you can get it that they've provided on their GitHub page is CircleCI, but the website seems to require registration.
Tip: when you're installing ElectronJS, I recommend doing it as stated by the official guide -> npm install electron --save-dev and not just npm install electron. As to why, you can read the reason over here.
Another alternative is to download everything properly from somewhere else, e.g. your home, neighbour, café, etc., onto a USB Flash Drive and then when you get to your work place, have the IT department check the USB - once it's confirmed that it's safe, copy it to your work computer (make sure to consult with the apropriate department if you can do that).

SPFx development setup offline

Is there anyway we can setup SharePoint framework development environment offline without internet connection?
Following this instruction,
https://learn.microsoft.com/en-us/sharepoint/dev/spfx/set-up-your-development-environment
It failed on the second step,
npm install -g yo gulp
If your node modules were already installed, then yes, you can develop offline. But the npm install command very specifically downloads and installs the package you specify.
If you can find a colleague who already has those modules installed and you can copy from their machine to yours, you could potentially get it setup without an internet connection, but you are going to have to get those SPFx packages (Yeoman Gulp and Microsoft Generator) from somewhere.

How to install just node modules without internet

There is a way to install npm package to a machine which doesn't have internet acccess is, using npm pack in machine with internet acces, copying it to machine without internet and running npm install <tar> in it. But npm pack, packs whole project.
But I want to manage and install the modules myself, without the opportunity for the developers to add/remove any modules. So I just want node_modules to be packaged. And then want to install it to machine without internet.
For example when developer push his/her commits to origin, I want to get node_modules from ftp etc. and codes from GitLab then go on continuous integration with this static node_modules.
How can I do that?
There is a solution to manage the modules yourself: you can store your node_modules in its own repo in which your developers will only be able to clone/get the repo and not contribute/modify it.
Hope this helped you
This can be done, please look at Installing a local module using npm? . You can FTP or whatever to get the packages and install them using npm.

Installing and Upgrading Intern without NPM

Is there any way to install Intern without npm?
I'm not going to get the rights to download files through our corporate proxy and I can't convince anyone to spend a few dollars to upgrade to Artifactory Pro and use its npm support.
You could download it from GITHub [https://github.com/theintern/intern/releases/tag/2.2.2] at home, or on a computer of a friend (outside of the Proxy). But that are the sources which must be compiled. And even if you could download the node module then, there still be dependencies, which would have been resolved by hand. (npm could not add them automatically).
One idea is to put your project on a stick or external HD. Take it to Computer outside of the proxy. Install node on this computer. Install Intern and put it back to the work computer.

NPM - Can't install socket.IO

I am trying to install socket.io on windows with npm for use on a nodeJS server.
First, when I typed "npm install socket.IO" i had an error in the log saying something about python and node-gyp. I installed python 2.7.3 and set the environment variables.
Now I got a new error, which has something to do with visual studio (what the hell does VS have to do with npm ? Is it about the compiler? ).
The error is the same as here npm install for some packages (sqlite3, socket.io) fail with error MSB8020 on Windows 7
But when I use the option in the answer instead of the error it tells me something about a possible data loss (c4267) but doesn't log any error.
Then when I start my app, it tells me cannot find module socket.io still
What could this come from ?
Oh and also when i do npm config get root it tells me "undefined" could it have anything to do with it ?
Should I install the modules globally or locally ?
At least one of the packages in Socket.IO's dependency tree is a C/C++ addons which needs to be compiled on your system as it's installed. And, since it's a dependency, if it doesn't succeed in installing, neither will Socket.IO.
To enable cross-system compilation, Node.js uses node-gyp as its build system. You'll need to have it installed as a global package:
npm install -g node-gyp
As well as have its dependencies installed. Abridged version:
Python 2
C/C++ Compiler / Build Tools
For Windows, Microsoft Visual Studio 2013 (C++ or Windows Desktop) (Express edition)
For 64-bit, may need Windows 7 64-bit SDK
Then, you should be able to install Socket.IO as a local package so you can require it:
npm install socket.io
I had a similar problem on Mac.
What resolved my problem is installing a slightly older version of Socket.io.
I did:
npm install socket.io#"~0.8.1"
which would install the latest version between 0.8.0 to 0.8.9, but not 0.9.0 or above.
Socket.io then installed perfectly.
Make sure you have all the required software to run node-gyp:
https://github.com/TooTallNate/node-gyp
You can configure version of Visual Studio used by gyp via an environment variable so you can avoid having to set the --msvs_version=2012 property.
Examples:
set GYP_MSVS_VERSION=2012 for Visual Studio 2012
set GYP_MSVS_VERSION=2013e (the 'e' stands for 'express edition')
For the full list see
- https://github.com/joyent/node/blob/v0.10.29/tools/gyp/pylib/gyp/MSVSVersion.py#L209-294
This is still painful for Windows users of NodeJS as it assumes you have a copy of Visual Studio installed and many end users will never have this. So I'm lobbying Joyent to the encourage them to include web sockets as part of CORE node and also to possible ship a GNU gcc compiler as part of NodeJS install so we can permanently fix this problem.
Feel free to add your vote at:
https://github.com/joyent/node/issues/8005#issuecomment-50545326
The problem causing the compile failure is that the ws module installed by the engine.io module required by socket.io pulls in a backlevel version of nan. See https://github.com/BrowserSync/grunt-browser-sync/issues/95 for details. To work around the problem after the build failure:
cd to node_modules/socket.io/node_modules/engine.io/node_modules/ws
edit package.json to change the release of nan from 1.4.x to 1.6.0
issue command node-gyp rebuild
You should now be able to use socket.io
Another approach is to use Docker for Windows and spin up a NodeJS environment. While developing you can mount your Node code as a Docker volume and so continue to update your code from Windows but execute it and install it's dependencies inside a Linux VM. When you deploy you might prefer to use a Dockerfile that COPY's your Node code into your Docker image and so bakes it into the release image you deploy.
This approach might be required if you don't want to risk changing the socket.io version of your code or its dependencies.
It also may be a valuable solution if you planned to deploy to a corporate Intranet or public/private Cloud.
Docker can also be very handy for testing deployment under different versions of Node without disturbing the development environment of your Windows computer (e.g. for testing a NodeJS lib).
Official NodeJS Docker images
An explanation of how to use these images
this problem makes me very troubled..
I tried many solutions.
I installed .NET Framework 2.0 SDK.
I installed Python 2.7.x
I installed VS 2012 Express
I set some paths
I executed npm install xxx with the argument --msvs_version=2010(or 2012/2013..)...
But all failed.
finally, I uninstalled Python & .NET Framework 2.0 SDK & VS 2012, clear those paths,enable Windows Update, install all essential updates, restart my computer
then execute commands below:
npm install node-gyp -g
npm install socket.io -g
npm install browser-sync -g
there is no errors in installation logs.
Note : this solution may not work for you, but for me

Resources