-
Notifications
You must be signed in to change notification settings - Fork 12k
Since 1.6.4 Angular Material CSS import does not work anymore (breaking change) #9185
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Same problem here |
This is indeed a defect and will be corrected in the next patch release. The tilde can actually be removed to retain existing behavior. |
Same problem here ERROR in ./node_modules/css-loader?{"sourceMap":false,"import":false}!./node_modules/postcss-loader/lib?{"ident":"postcss","sourceMap":false}!./src/styles.css |
Thanks @clydin ! removing the tilde correct the behaviour for Angular Material theme import.
and removing the tilde actually give the error
It worked until angular cli version 1.6.3 :-) |
@pferretti I provided further details over here on that particular problem: #9166 (comment) Also, unless the application does not have access to the internet or has restrictions thereof, adding this to index.html should typically provide a performance benefit over the package import method:
|
Thank you @clydin , but unfortunately my app has restrictions and I have to rely on font self-hosting. For reference, I temporarily copied Material Icon fonts in my assets folder and added to style.css the styles specified at https://google.github.io/material-design-icons/#setup-method-2-self-hosting Probably not elegant, but it's a temporary solution that works :-) |
@pferretti You can also add the file to the Edit: Nevermind, you need multiple files, then that wont work |
Is this related to the issue with the updated autoprefixer? The autoprefixer version that was inhibiting use of bootstrap@4.0.0-beta.3 still does not appear to be functioning. (See 975f45a) |
@aarongranade it's not related and that should be working. If it is not, ensure that the project's version of the CLI is updated (not just the global) and if the problem persists check which versions of autoprefixer are installed via |
the solution I do to fix this issue is to change the part in https://github.com/angular/angular-cli/blob/1.6.x/packages/%40angular/cli/models/webpack-configs/styles.ts#L70 to postcssImports({
resolve: (url: string, context: string) => {
return new Promise<string>((resolve, reject) => {
if(url.startsWith('~')) {
url = url.substr(1);
}
loader.resolve(context, url, (err: Error, result: string) => {
if (err) {
reject(err);
return;
}
resolve(result);
});
});
}, |
Regarding the release notes for Angular 5.2 I'm frankly getting sick of reading things like 'This is a minor release that is a drop-in replacement for 5.1 containing many bugfixes.' and then having to spend 2 hours getting it to work until i stumble upon the right issue after having gone round and round in circles. I just cannot fathom how nobody involved in releasing 5.2 would stop to think 'hmm perhaps this update of our main project might cause a conflict with the latest version of our other main project'. It just wastes probably literally millions of hours and all you need is to add a |
I moved the In SCSS: |
I am also having this issue. Is there an easy way to roll back to angular-cli 1.6.0? |
I am also having this issue. |
Had the same issue, but for now I just downgraded CLI back to 1.6.3 (exact), and everything is fine. |
|
It's fixed, we just have to wait for a new release. |
anyone know how to downgrade i've tried :(after uninstall the leatest and clean cache verifed) |
I did exactly what @seffyfischer posted, plus put the exact 1.6.3 version in packages. json. Worked for me |
@sniederb i changed the "@angular/cli": "1.6.3" in the package.json still no good .
after putting // |
@seffyfisher here's my output.
I'm not sure what you did differently |
Forget all this reverting to 1.6.3 stuff. As @clydin said for now
@import "@angular/material/prebuilt-themes/indigo-pink.css"; This works for me with Angular 5.2 with CLI 1.6.4 Whether this is a temporary fix that itself will break again I'm not clear. Just make a mental note for the next release that you may have to put the tilde back again. For the record I only saw this error updating from Angular 5.1 > 5.2 - I don't think the CLI version itself is solely to blame. |
@simeyla thank you so much! |
actually removing telda '~' ,solved the problem for me either, i'm using: |
I encountered this error with my projects as well. I spent a few hours trying to figure out why my builds were all of sudden failing. I don't believe changing how you process css imports through the CLI should be changed in patch release that could break projects. I was able to get passed the issue by reverting back to CLI v1.6.2. I will update to a new version when the fix for this issue is released. |
I reported #9235 and rolling back to 1.6.3 does not help my issue. |
Workaround for the latest CLI bug angular/angular-cli#9185
Workaround for the latest CLI issue angular/angular-cli#9185
Yeah, the problem seems to be the tilda not being recognized by 1.6.4 as a reference to |
downgrade is working, stop ng serve, downgrade package.json "devDependencies": {
"@angular/cli": "^1.6.3",
...
} then run again in your project npm i -S -d -D @angular/cli
+ @angular/cli@1.6.3
added 3 packages, removed 12 packages, updated 3 packages and moved 7 packages in 16.723s run ng serve agb@MacPro ~/Sites/test development ● ng serve
Your global Angular CLI version (1.6.4) is greater than your local
version (1.6.3). The local Angular CLI version is used.
To disable this warning use "ng set --global warnings.versionMismatch=false".
** NG Live Development Server is listening on localhost:4200, open your browser on http://localhost:4200/ **
Date: 2018-01-17T09:42:10.576Z
Hash: f2e3ecfc884e2f1a1625
Time: 28136ms
chunk {inline} inline.bundle.js (inline) 5.79 kB [entry] [rendered]
chunk {main} main.bundle.js (main) 535 kB [initial] [rendered]
chunk {polyfills} polyfills.bundle.js (polyfills) 607 kB [initial] [rendered]
chunk {scripts} scripts.bundle.js (scripts) 20.8 kB [initial] [rendered]
chunk {styles} styles.bundle.js (styles) 1.67 MB [initial] [rendered]
chunk {vendor} vendor.bundle.js (vendor) 45 MB [initial] [rendered]
webpack: Compiled successfully. full depedencies "dependencies": {
"@angular/animations": "^5.2.0",
"@angular/cdk": "^5.0.4",
"@angular/common": "^5.2.0",
"@angular/compiler": "^5.2.0",
"@angular/core": "^5.2.0",
"@angular/flex-layout": "^2.0.0-beta.12",
"@angular/forms": "^5.2.0",
"@angular/http": "^5.2.0",
"@angular/material": "^5.0.4",
"@angular/platform-browser": "^5.2.0",
"@angular/platform-browser-dynamic": "^5.2.0",
"@angular/platform-server": "^5.2.0",
"@angular/router": "^5.2.0",
"@asymmetrik/ngx-leaflet": "^3.0.1",
"@ngrx/effects": "^4.1.1",
"@ngrx/router-store": "^4.1.1",
"@ngrx/store": "^4.1.1",
"@ngrx/store-devtools": "^4.1.1",
"@types/leaflet": "^1.2.5",
"@types/lodash": "^4.14.92",
"angular2-jwt": "^0.2.3",
"angular2-jwt-refresh": "^0.1.0",
"apollo-angular": "^1.0.1",
"apollo-angular-link-http": "^1.0.1",
"apollo-cache-inmemory": "^1.1.5",
"apollo-client": "^2.2.0",
"apollo-link": "^1.0.7",
"apollo-link-context": "^1.0.3",
"apollo-link-http": "^1.3.2",
"apollo-link-state": "^0.3.1",
"apollo-link-ws": "^1.0.4",
"apollo-utilities": "^1.0.4",
"core-js": "^2.5.3",
"devextreme": "^17.2.4",
"devextreme-angular": "^17.2.4",
"faker": "^4.1.0",
"graphql": "^0.12.3",
"graphql-subscriptions": "^0.5.6",
"graphql-tag": "^2.6.1",
"hammerjs": "^2.0.8",
"leaflet": "^1.3.0",
"lodash.merge": "^4.6.0",
"logrocket": "^0.6.2",
"logrocket-ngrx": "0.0.0",
"ngrx-store-logger": "^0.2.0",
"node-sass": "^4.7.2",
"raven-js": "^3.22.1",
"rxjs": "^5.5.6",
"subscriptions-transport-ws": "^0.9.5",
"zone.js": "^0.8.20"
},
"devDependencies": {
"@angular/cli": "^1.6.3",
"@angular/compiler-cli": "^5.2.0",
"@angular/language-service": "^5.2.0",
"@storybook/addon-actions": "^3.4.0-alpha.1",
"@storybook/addon-links": "^3.4.0-alpha.1",
"@storybook/addon-notes": "^3.4.0-alpha.1",
"@storybook/angular": "^3.4.0-alpha.1",
"@types/jasmine": "^2.8.4",
"@types/jasminewd2": "^2.0.3",
"@types/lodash-es": "^4.17.0",
"@types/node": "^9.3.0",
"codelyzer": "~4.0.2",
"jasmine-core": "~2.8.0",
"jasmine-spec-reporter": "~4.2.1",
"karma": "^2.0.0",
"karma-chrome-launcher": "~2.2.0",
"karma-cli": "~1.0.1",
"karma-coverage-istanbul-reporter": "^1.3.3",
"karma-jasmine": "~1.1.1",
"karma-jasmine-html-reporter": "^0.2.2",
"ngrx-store-freeze": "^0.2.0",
"protractor": "~5.2.2",
"serenity-js": "^1.10.2",
"ts-node": "^4.1.0",
"tslint": "~5.9.1",
"typescript": "^2.6.2",
"webpack-bundle-analyzer": "^2.9.2"
}, |
Downgrade worked to me :) |
I was able to simply remove the tilde from the import statement in my styles.css that was for the Angular Material theme. That worked. However... that approach did not work for other imported styles (font-awesome, etc.). So, I simply went back to the .angular-cli.json file to add my style imports there and that works fine with 1.6.4. It is odd that the Angular team has let this seemingly simple bug out in the wild for so many days. I would have expected this to be fixed the same day that 1.6.4 was released or the next day. |
Duplicate of (#9099) |
This is the eay way to get rid of "ERROR in ./node_modules/css-loader?{"sourceMap":false,"import":false}!." |
I had the same problem but adding 3 lines of code it seems that the problem has disappeared, I will see if everything works and let my know. I added if (url.startsWith("~")) {
url = url.substr(1);
} to the in the place where postcssImports({
resolve: (url, context) => {
return new Promise((resolve, reject) => {
loader.resolve(context, url, (err, result) => {
if (err) {
reject(err);
return;
}
resolve(result);
});
});
},
// ...
// ... and it has to be postcssImports({
resolve: (url, context) => {
return new Promise((resolve, reject) => {
if (url.startsWith("~")) {
url = url.substr(1);
}
loader.resolve(context, url, (err, result) => {
if (err) {
reject(err);
return;
}
resolve(result);
});
});
},
// ...
// ... this is not my solution, but the only one that helps something, but that no one answered the correctness of the solution from @jolafrite , that's why I call reagain, post the bug-fix. What do you think about this solution? this correct is it?, and what's next? |
@CisSasGot Already merged see 5d346c1 |
- block angular cli to version 1.6.3 until the issue angular/angular-cli#9185 is resolved - add angular-devkit/core to dev dependencies until the issue angular/devkit#256 is resolved
Resolved in 1.6.5 & 1.7.0-beta.1. If this problem still persists for anyone, please open a new issue detailing the circumstances of the problem. |
@CisSasGot hi my bug is similar to this however the angular version I am using is "@angular/cli": "1.6.1", they do not have postcssImports how do I fix it? Below is the code "use strict";
|
I resolved the issue by upgrading
|
@clydin Its still not working with ng build --prod with below config. This works: devDependencies": { |
Yes, there are tests for multiple forms in both global and component styles in all of the following: CSS, SCSS, LESS, and stylus. Please open a new issue with a minimal reproduction so that the problem can be fully examined. |
@clydin would't it be a duplicate? |
Beyond ridiculous. If I have to spend another set of hours having to hunt down such stupid issues... a tilde that used to work... really? I'm just going to switch to a different framework it is getting impossible to work with. |
This issue has been automatically locked due to inactivity. Read more about our automatic conversation locking policy. This action has been performed automatically by a bot. |
Versions
Repro steps
A new Angular CLI and Angular Material project like mentioned here:
https://material.angular.io/guide/getting-started
Observed behavior
The import
@import "~@angular/material/prebuilt-themes/indigo-pink.css";
in thestyles.css
fails:Desired behavior
No error or update Angular Material Getting started section.
Mention any other details that might be useful (optional)
Worked until 1.6.3 :)
The text was updated successfully, but these errors were encountered: