fixing version problems in bower after installing Angular Material - angularjs

I have a project which was using angular version 1.4. I installed angular material via bower and then subsequently received the following error:
Uncaught TypeError: angular.module(...).info is not a function
I read this was to do with the version of angular I'm using so I updated angular and then angular-animate to 1.6. However this didn't fix the problem. I tried running bower update but I still have the above error.
When I ran bower update I received the following warning...
Resort to using angular#~1.4.2 which resolved to angular#1.4.14
Code incompatibilities may occur.
this is the contents of my bower.json file:
{
"name": "node-template",
"version": "0.0.0",
"main": [
"./public/styles/*.css",
"./public/scripts/*.js"
],
"dependencies": {
"angular-animate": "1.6",
"angular-sanitize": "~1.4.2",
"angular-messages": "~1.4.2",
"bootstrap-sass": "~3.3.5",
"jquery": "~2.1.4",
"angular": "1.6",
"angular-ui-router": "~0.2.15",
"angular-bootstrap": "~2.5.0",
"angular-google-chart": "~0.1.0",
"velocity": "~1.4.2",
"animate.css": "~3.5.2",
"angular-file-saver": "~1.1.3",
"ng-file-upload": "~12.2.13",
"ng-img-crop": "ngImgCrop#~0.3.2",
"angularfire": "~2.3.0",
"angular-material": "~1.1.4"
},
"devDependencies": {
"angular-mocks": "~1.4.2"
},
"overrides": {},
"resolutions": {
"jquery": "~2.1.4",
"angular": "~1.4.2"
}
}
Is bower telling me I'm using version 1.4? I don't understand why it cannot resolve the version problems I'm encountering?
Edit:
here is my new bower.json after upgrading to angular 1.5:
{
"name": "node-template",
"version": "0.0.0",
"main": [
"./public/styles/*.css",
"./public/scripts/*.js"
],
"dependencies": {
"angular-animate": "1.4",
"angular-sanitize": "~1.4.2",
"angular-messages": "~1.4.2",
"bootstrap-sass": "~3.3.5",
"jquery": "~2.1.4",
"angular": "1.5",
"angular-ui-router": "~0.2.15",
"angular-bootstrap": "~2.5.0",
"angular-google-chart": "~0.1.0",
"velocity": "~1.4.2",
"animate.css": "~3.5.2",
"angular-file-saver": "~1.1.3",
"ng-file-upload": "~12.2.13",
"ng-img-crop": "ngImgCrop#~0.3.2",
"angularfire": "~2.3.0",
"angular-material": "~1.1.4"
},
"devDependencies": {
"angular-mocks": "~1.4.2"
},
"overrides": {},
"resolutions": {
"jquery": "~2.1.4",
"angular": "1.5"
}
}

You have Angular 1.4.14 installed. Looking at the bower.json for Angular Material the minimum version of AngularJS required for the package is 1.5 which is probably why you are having errors. Can you not update to AngularJS 1.5?
Failing that, I suggest you install an older version of Angular Material that is compatible with 1.4.x

The error I was seeing...
angular.module(...).info is not a function
...seems to arise when the version of angular-aria (required by angular-material) is newer than the version of angular. I managed to get my build working again by setting angular-aria to be the same version as angular.

Related

bower.json how to skip already installed packages

In my application, all the packages except Chart and angular-chart are already installed.
I need to install only these two.
Question: How to skip the rest of the packages from being updated or downloaded again?
{
"name": "ui-chromeapp",
"version": "0.0.0",
"dependencies": {
"angular": "~1.2.23",
"angular-bootstrap": "~0.11.0",
"bootstrap": "~3.2.0",
"angular-ui-router": "~0.2.11",
"underscore": "~1.7.0",
"jquery.easy-pie-chart": "~2.1.4",
"sprintf": "~1.0.2",
"jquery.scrollTo":"~2.1.1",
"angular-translate":"~2.8.1",
"angular-translate-loader-static-files" : "~2.8.1",
"Chart.js" : "1.0.1"
},
"devDependencies": {},
"resolutions": {
"Chart.js": "1.0.1"
}
}
Hint: While using bower installcommand, after your ran it once before, no new packages / dependencies were installed. When using bower update new versions of your packages will be downloaded (depending on your bower.json configuration -> package version config). All in all, both commands do not install a package in the same package-version again.
Just remove the version option handlers and you wil be fine. It's not a issue, it's a nice behavior.
{
"name": "ui-chromeapp",
"version": "0.0.0",
"dependencies": {
"angular": "1.2.23",
"angular-bootstrap": "0.11.0",
"bootstrap": "3.2.0",
"angular-ui-router": "0.2.11",
"underscore": "1.7.0",
"jquery.easy-pie-chart": "2.1.4",
"sprintf": "1.0.2",
"jquery.scrollTo":"2.1.1",
"angular-translate":"2.8.1",
"angular-translate-loader-static-files" : "2.8.1",
"Chart.js" : "1.0.1"
},
"devDependencies": {},
"resolutions": {
"Chart.js": "1.0.1"
}
}

Circleci fails bower install with - ECONFLICT Unable to find suitable version

Circleci keeps failing with this error
ECONFLICT Unable to find suitable version for angular
These are my dependencies in bower.json
"dependencies": {
"angular": "1.4.7",
"angular-animate": "1.4.7",
"angular-credit-cards": "2.3.5",
"angular-local-storage": "0.2.2",
"angular-messages": "1.4.7",
"angular-sanitize": "1.4.7",
"angular-translate": "2.7.2",
"angular-ui-router": "0.2.15",
"bluebird": "2.9.34",
"bourbon": "4.2.6",
"immutable": "3.7.5",
"neat": "1.7.2",
"normalize-scss": "3.0.3",
"ramda": "0.16.0",
"rxjs": "2.5.2",
"system.js": "0.19.6",
"angular-markdown-directive": "0.3.1",
"angularjs-geolocation": "0.1.1",
"angulartics": "0.20.2",
"angulartics-google-analytics": "0.1.2",
"angulartics-facebook-pixel": "0.1.0"
},
"resolutions": {
"angular": "1.4.7"
}
I tried running it locally and it works fine, not sure what's the problem. Any help would be appreciated
add
"ignoredDependencies": ["angular"]
to your bower.cc file and it will ignore the dependancy (but you must be sure yourself that the package works with your version of angular).

bower.json Error ECONFLICT Unable to find suitable version for angular

I have the following dependencies in my bower.json file:
{
"name": "aposoft-frontend",
"dependencies": {
"angular-bootstrap": "0.13.0",
"jquery": "~2.1.4",
"bootstrap": "~3.3.5",
"angular-ui-router": "~0.2.15",
"angular-i18n": "~1.4.2",
"angular-local-storage": "~0.2.2",
"angular-http-auth": "~1.2.2",
"angular-bootstrap-show-errors": "~2.3.0",
"angular-xeditable": "~0.1.9",
"pace": "~1.0.2",
"angular-mocks": "~1.4.3",
"angular-ui-validate": "~1.1.1",
"angular-translate-loader-static-files": "~2.7.2",
"quick-ng-repeat": "~0.0.1",
"angular-holderjs": "~1.1.0",
"holderjs": "~2.8.2",
"angular-bootstrap-datetimepicker": "latest"
},
"devDependencies": {}
}
without "angular-bootstrap-datetimepicker": "latest" it works fine but with the dependency "angular-bootstrap-datetimepicker": "latest" I get following ERROR if I will build my frontend:
**[ERROR] bower ECONFLICT Unable to find suitable version for angular**
Does anyone know how I could solve this issue?
Thanks a lot!
Use * in place of latest to install the latest version

AngularJS application deployment to Heroku, unable to find suitable angular-animate version

I am deploying an AngularJS application to Heroku but am getting this error in the console:
remote: bower ECONFLICT Unable to find suitable version for angular-animate
remote:
remote: ! Push rejected, failed to compile Node.js app
remote:
remote: Verifying deploy....
remote:
remote: ! Push rejected to test-app-12345
The problem (of course) seems to be with the angular-animate dependency.
I am using a Heroku angularJS buildpack "Yo Angular" and have followed their 4 step process for a successful application deployment to Heroku.
I tried fixing this by changing my bower.json file like recommended in this StackOverflow answer, hoping it would solve my issue. It did not.
Locally, I use grunt serve to start the application and that works for me just fine.
My bower.json looks like this:
{
"name": "dashboard",
"version": "0.0.0",
"main": "index.html",
"ignore": [
"**/.*",
"node_modules",
"bower_components"
],
"dependencies": {
"jquery": "~2.0",
"bootstrap": "~3.1.1",
"angular": "~1.3.15",
"angular-ui-router": "~0.2",
"angular-animate": "~1.3.15",
"angular-resource": "~1.3.15",
"angular-cookies": "~1.3.15",
"angular-mocks": "~1.3.15",
"angular-ui-utils": "~0.1",
"angular-bootstrap": "~0.11.2",
"moment": "~2.5",
"less.js": "~1.6",
"font-awesome": "~4.2.0",
"form-builder": "0.1.0",
"restangular": "~1.4.0",
"lodash": "~2.4.1",
"satellizer": "~0.3.2",
"angular-xeditable": "~0.1.8",
"fullcalendar": "~2.1.1",
"angular-ui-calendar": "~0.8.1",
"checklist-model": "~0.1.3"
},
"resolutions": {
"font-awesome": "~4.2.0",
"jquery": "~2.0",
"fullcalendar": "~2.1.1",
"angular": "~1.3.15",
"angular-bootstrap": "~0.11.2"
}
}
The code is public for now, so here is the link to the Github repo.
Anyone have tips for me, or a good idea of what I am doing wrong?
P.S. I found this information in bower's Github issues tracking, which is dealing with the same problem. Might be helpful in figuring this out.
This error occurs when two packages reference different versions of the same dependency.
You can resolve the issue by running rm -rf bower_components/ ; bower install
Then when prompted to choose a version prefix your answer with a "!" like I have below. Notice how bower will add a "resolutions" section.
Unable to find a suitable version for angular-animate, please choose one:
1) angular-animate#~1.2 which resolved to 1.2.28 and is required by form-builder#0.1.0
2) angular-animate#~1.3.15 which resolved to 1.3.17 and is required by dashboard
3) angular-animate#~1.4.3 which resolved to 1.4.3
Prefix the choice with ! to persist it to bower.json
? Answer: !3
Here is your resolved bower.json file.
{
"name": "dashboard",
"version": "0.0.0",
"main": "index.html",
"ignore": [
"**/.*",
"node_modules",
"bower_components"
],
"dependencies": {
"jquery": "~2.0",
"bootstrap": "~3.1.1",
"angular": "~1.3.15",
"angular-ui-router": "~0.2",
"angular-animate": "~1.4.3",
"angular-resource": "~1.3.15",
"angular-cookies": "~1.3.15",
"angular-mocks": "~1.3.15",
"angular-ui-utils": "~0.1",
"angular-bootstrap": "~0.11.2",
"moment": "~2.5",
"less.js": "~1.6",
"font-awesome": "~4.2.0",
"form-builder": "0.1.0",
"restangular": "~1.4.0",
"lodash": "~2.4.1",
"satellizer": "~0.3.2",
"angular-xeditable": "~0.1.8",
"fullcalendar": "~2.1.1",
"angular-ui-calendar": "~0.8.1",
"checklist-model": "~0.1.3"
},
"resolutions": {
"font-awesome": "~4.2.0",
"jquery": "~2.0",
"fullcalendar": "~2.1.1",
"angular": "~1.3.15",
"angular-bootstrap": "~0.11.2",
"angular-animate": "~1.4.3"
}
}

Bower Error: bower angular resolution unsuitable resolution

I got a fail response that bower angular resolution Unsuitable resolution declared for angular: 1.4.8 bower ECONFLICT Unable to find suitable version for angular
And my bower.json is
{
"name": "someet-backend",
"version": "0.0.0",
"private": true,
"dependencies": {
"angular-bootstrap": "0.14.2",
"angular-material": "0.11.1",
"angular-route": "1.4.7",
"angular-local-storage": "0.2.2",
"ng-lodash": "0.2.3",
"ng-file-upload": "6.0.2",
"angular-bootstrap-datetimepicker": "latest",
"angular-messages": "1.4.7",
"ng-tags-input": "~3.0.0",
"angular-jquery": "~0.2.1",
"textAngular": "v1.3.0-pre15",
"bootstrap": "~3.3.5",
"jquery": "~2.1.4",
"angular": "~1.4.8",
"moment": "~2.10.6"
},
"resolutions": {
"angular": "1.4.8"
}
}
I have try to degrade angular as
"resolutions": {
"angular": "1.4.7"
}
,
"resolutions": {
"angular": "1.4.6"
}
,
"resolutions": {
"angular": "1.3.0"
}
then return similar response result
Upgrade angular-route, angular-messages to match angular version 1.4.8
Upgrade Dev_dependencies as well as resolutions
"devDependencies": {
"angular-mocks": "~1.7.8",
"angular-route": "~1.7.8"
},
"resolutions": {
"angular": "1.7.8"
}

Resources