Phonegap: two kinds of installations, what's the difference? - node.js

I've seen there are two kinds of installations for Phonegap, one goes through installing node.js and then phonegap and the other is done by extracting a zip file (like discussed here : How to install phonegap-2.7.0 for ios?)
What are the differences? I want to know them before choosing my way.

Basically, zip was for phonegap/cordova 2.x and CLI (based on node-npm) is for cordova/phonegap 3.x
So if you're new to phonegap/cordova you should choose the CLI installation and use cordova or phonegap version 3.5
Choosing cordova or phonegap is an other subject, but if you don't plan on using phonegap build, I'd suggest Cordova.

Related

How to freeze all Cordova dependencies?

I'm building a Cordova app where tight control over the build environment is part of the spec/business requirements.
I'd like to (a) figure out the version and binary file and url for EVERY dependency, and (b) make sure they NEVER update automatically.
I'd like to use this to set up a Docker image for a build, and/or a local mirror of all dependencies. If the Docker image can be regenerated from the mirror that is best; if the Docker image works fine without a network connection (including cordova platform rm/add...) that is a close second.
Unfortunately, the number of dependencies (including dependencies of dependencies etc) is massive, and worse, there are many completely different kinds of packages with different package management systems.
Some of the things I know about:
npm packages -> list in package.json, installed in node_modules/, downloaded from npmjs.com
cordova platforms -> list in config.xml, installed in platforms/ (from npm?)
cordova plugins -> list in config.xml, installed in plugins/ (from npm?)
gradle? from https://services.gradle.org/distributions/
bintray packages?
maven packages?
for Android - platform-tools, build-tools etc, downloaded using tools/bin/sdkmanager from ?
for iOS - Xcode and a bunch of other things?
How can I get a handle on all of these? Is this an already solved problem (and how)?
It seems like this would be something that everyone who cares about versioning but wants to use Javascript/Node-type tools would need to solve; however there seems to be an almost total lack of documentation on it.

Does it matter what versions of Angular third party modules installed via npm use?

I have an Ionic4 app using the most current version of Angular7. I installed a few node modules from third parties via npm install --save. The npm modules I installed via npm use Angular4 (when I look through the modules package.json on git), but my main Ionic app uses Angular7. Am I using 2 versions of Angular in my Ionic app and bloating it?
The simply answer is no, it doesnt matter what version of angular third party vendors use. Generally if a library how built using Angular 4 it can be consumed in an newer version of Angular eg) v6, v7 etc. One thing to look out for is the packages that you are consuming in your application, if a package was built with Angular 4 its a high possibility it contains other dependencies that was used and in some cases those packages that were used to build that library may come up as deprecated in newer versions of Angular.
To answer your comment, the answer is yes again; generally if you are using a newer version of Angular you should use the newer packages but if you do use a library that uses an older package, angular will adapt to the specification of that particular package.
Mark as answer is it helped, thank you.
IMPORTANT* when you are upgrading from the current version of angular to an advanced one, you should always install (using NPM install) the angular libraries first and only then the third party packages otherwise it could stuck your installation process and give you strange 'gyp-node' errors.
I think your app is working because ionic was made out of angular, as far as i know, one thing i could recommend to you, apart from the fact that you are asking one thing on the title of your question and then asking something else on your description, is to use NVM.
Stuff like angular, npm and ionic will be linked to your node version, so you could work with two different versions of node and all of the other stuff will not get mixed up, i really hope this helps you a little.

How to install latest ionic2 components

I am currently using ionic2 to try creating a cross plattform app. I know that ionic2 still is under heavy construction and that things (may) change at any time.
Still i wonder how I could install the latest components/api stuff from the nightly builds (or whereever they reside).
I am especially referring to the infiniteScroll Component that is mentioned in the API-Documents of ionic2.
Since i don't understand the layout of the components inside my project fully, i checked where i could see some of them in the directory structure. If i get this right, they all reside in <projectHome>/node_modules/ionic-framework/components?
At least lots of the components mentioned in the documentation above are listed there.
But as i can't find the infiniteScroll Component there, i would like to get some hints on how to install this (and the other missing ones) either by directly giving the respective commands or by pointing to appropriate documentation (i simply did not find anything although searched quite a while for it).
ionic info shows:
Your system information:
Cordova CLI: 6.0.0
Ionic Version: 2.0.0-beta.1
Ionic CLI Version: 2.0.0-beta.17
Ionic App Lib Version: 2.0.0-beta.8
ios-deploy version: 1.7.0
ios-sim version: 4.1.1
OS: Mac OS X El Capitan
Node Version: v5.6.0
Xcode version: Xcode 7.0 Build version 7A220
Sir,
Ionic made some changes in their latest commit. You could see the changes here in the changelog. (Mar 1)
The components are not present in 'ionic-framework/ionic' anymore and they are now present in 'ionic-angular'.
Infinite scroll was added in the release 2.0.0-beta.2, whereas you use the previous release 2.0.0-beta.1 So you might not be able to add it. You could change your package.json to reflect the latest version like shown below.
"ionic-angular": "2.0.0-beta.2",
I would recommend you to read the changelog as it would give a better idea. Hope this was helpful. Thanks.

Set version Info does not exist error after installing MSBuild Extension Pack for DotNetNuke module creation

The PC at work finally kicked the bucket and I needed to install MSBuild Extension Pack on my new PC so that I could continue creating DNN modules for my website. For whatever reason after I install it, I am getting the same error as if it is not installed
Set version Info does not exist in project c:\users\...
Here is what I have tried:
Uninstalling and reinstalling
Restarting computer and VS several times
Starting new project and trying to build it (gives same error)
Looking online for documentation and/or videos on how to install this properly (no luck)
My current version of windows is win7 x64 and the version of DotNetNuke that I am creating modules on is DNN 6.2.5. The version of MSBuild I have installed is 3.5.14 and 4.0.11. I am using VisualStudio 2012.
Did I miss a step in installation? Should I have used Community tasks?
After several restarts (and several rinse and repeat of the above 'tried' list), I installed MSBuild.Community.Tasks.v1.4.0.00.msi. After installing this my module template was able to build the project without error. Unfortunately, due to lack of documentation I do not know if you need both the extension pack AND community tasks in order for this to work, only that community was necessary in this case. For this reason I will leave the extension pack installed for now.

Nexus equivalent for web development

I've been using Maven and Nexus for Java backend development for quite some time, with very good results.
With web development, I started using the "usual suspects": Bower, Yeoman, NPM, Grunt, ...
What is the best way to managed project dependencies? I'd love to install a Nexus equivalent that would allow me not to download the dependencies for each project.
Thanks for your help! :)
I've not tried that, but bower can do that. You can host a private bower registry.
Here is some links you could be interrested with :
http://toranbillups.com/blog/archive/2013/08/04/How-to-host-a-private-bower-registry/
https://github.com/bower/registry
For your NPM needs you can continue to use Nexus, as NPM support is part of Nexus OSS and PRO and allows for proxying, hosting and grouping. Check out the documentation and a video demo for more information.

Resources