AngularJS
Development Web Server
$ npm start
npm
Initial Configuration
To create an initial package.json configuration for the
project:
$ npm init
And answer the questions. More help here.
Then install each of the required runtime and development packages,
but using either the --save or --save-dev
options respectively. e.g.
$ npm install bower --save-dev
Updating Packages
Run npm update which will update the packages to the
latest versions within the constraints of your package.json
configuration.
Afterwards, run npm outdated for a list of packages that
are older than the latest available.
Updating npm
To update to the latest version:
$ sudo npm install npm -g
$ npm -v
To update to a specific version:
$ sudo npm install npm@2.14.15 -g
$ npm -v
Have a look through the
releases in GitHub to see what’s available, or use
npm view npm | more.
Searching for packages
$ npm search bower
View Package Details
$ npm view bower
Angular Seed Project
These examples are only relevant in an AngularJS Seed App
Project which contains these named tasks which are defined in
package.json).
Karma Unit Tests
Run continuously on file save:
$ npm test
Run once and exit:
$ npm run test-single-run
Protractor End-to-End Tests
$ npm run update-webdriver
The current version of the web driver is installed in
node_modules/protractor/node_modules/webdriver-manager/selenium.
Subsequently:
$ npm run protractor
Trouble-shooting Protractor failing to start
You can try turning on debugging aids when running Protractor
$ yarn run protractor --verbose --stackTrace --troubleshoot --logLevel DEBUG
Try running Selenium standalone:
$ ./node_modules/webdriver-manager/bin/webdriver-manager start
Download a different version:
$ ./node_modules/webdriver-manager/bin/webdriver-manager --versions.standalone=3.141.59 update
Run with a specific version:
$ ./node_modules/webdriver-manager/bin/webdriver-manager --versions.standalone=3.141.59 start
Bower
Current Versions
The following command lists the local packages and any possible updates:
$ bower list
To update all the packages to the latest versions:
$ bower update
Information on a Bower Package
$ bower info angular
Updating Dependencies
To find the latest dependencies for your current Bower
configuration, either run bower info package on each
package or alternatively, change the version numbers to null in the
bower.json configuration file. E.g.
{
"name": "MyApp",
"description": "My App",
"version": "0.0.0",
"license": "UNLICENSED",
"private": true,
"dependencies": {
"angular": null,
"angular-route": null,
"angular-loader": null,
"angular-mocks": null,
"html5-boilerplate": null
}
}
See http://stackoverflow.com/questions/18815655/how-to-set-package-latest-version-in-bower
Useful Projects
- angular-jwt
- JSON Web Tokens - jwt.io
- angular-bootstrap-confirm
- angular-CommonMark
- angular-file-upload
- angular-file-saver
- angular-pagedown
- angular-paging
- Angular Leaflet Map API wrapper to Leaflet
- ui-leaflet
- angular-validation-match
- angular-ui-bootstrap
- angular-socket-io
- send
- socket.io
- ui-select
- angular-exeditable
Useful Tools
Using NPM as a build tool
http://blog.keithcirkel.co.uk/how-to-use-npm-as-a-build-tool/
Trouble-Shooting
npm WARN optional dep failed, continuing fsevents@1.0.6
This is caused when installing Karma. It seems to be something that is only relevant to Mac OSX, so if on Windows/Linux, ignore.
TypeError: angular.$$minErr is not a function
When running angular-loader to asynchronously load angular scripts you see this error:
TypeError: angular.$$minErr is not a function
$routeMinErr = angular.$$minErr('ngRoute');
Ensure that angular.js is loaded first by placing its
<script> element before the
//@@NG_LOADER_END@@ tag. Then remove
angular.js from the array of asynchronously loaded
scripts.
See https://github.com/angular/angular.js/issues/9140
ChromeDriver
The version of ChromeDriver being used is controlled by the installed
Protractor version. If a newer version of
ChromeDriver than that provided by Protractor is needed, it can be
updated by specifying the version of Chrome as a parameter to
webdriver-manager:
$ webdriver-manager update --gecko=false --versions.chrome=76.0.3809.100
See https://github.com/angular/webdriver-manager/issues/351#issuecomment-476595330 for further information.
ChromeDriver releases are listed at http://chromedriver.storage.googleapis.com/index.html
Unhandled promise rejection (rejection id: 1): Error: Failed to make Github request, rate limit reached.
If you’re only using Chrome for Protractor tests, disable gecko with:
$ node ./node_modules/protractor/bin/webdriver-manager update --gecko=false
See https://github.com/angular/webdriver-manager/issues/307#issuecomment-377684918
HTML5 Mode
- https://stackoverflow.com/questions/16677528/location-switching-between-html5-and-hashbang-mode-link-rewriting
- https://github.com/angular-ui/ui-router/wiki/Frequently-Asked-Questions#how-to-configure-your-server-to-work-with-html5mode
References
- AngularJS Project
- AngularJS Seed App Project Template
- Node.js
- npm
- Bower
- Karma
- http-server
- jasmine
- protractor
- Selenium WebDriverJs
- travis
– Frank Dean - 5 Jan 2016
Related Topics: NodeJS, DevelopmentSetup, LinuxDevelopment