Skip to content

Commit a2e9e00

Browse files
committed
refactor(@angular/cli): use postcss to process CSS imports
1 parent 23604bf commit a2e9e00

File tree

5 files changed

+111
-2
lines changed

5 files changed

+111
-2
lines changed

package-lock.json

+77
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@
7676
"opn": "~5.1.0",
7777
"portfinder": "~1.0.12",
7878
"postcss-custom-properties": "^6.1.0",
79+
"postcss-import": "^11.0.0",
7980
"postcss-loader": "^2.0.10",
8081
"postcss-url": "^7.1.2",
8182
"raw-loader": "^0.5.1",

packages/@angular/cli/models/webpack-configs/styles.ts

+31-2
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ const postcssUrl = require('postcss-url');
1212
const autoprefixer = require('autoprefixer');
1313
const ExtractTextPlugin = require('extract-text-webpack-plugin');
1414
const customProperties = require('postcss-custom-properties');
15+
const postcssImports = require('postcss-import');
1516

1617
/**
1718
* Enumerate loaders and their dependencies from this file to let the dependency validator
@@ -64,6 +65,33 @@ export function getStylesConfig(wco: WebpackConfigOptions) {
6465
};
6566

6667
return [
68+
postcssImports({
69+
resolve: (url: string, context: string) => {
70+
return new Promise<string>((resolve, reject) => {
71+
loader.resolve(context, url, (err: Error, result: string) => {
72+
if (err) {
73+
reject(err);
74+
return;
75+
}
76+
77+
resolve(result);
78+
});
79+
});
80+
},
81+
load: (filename: string) => {
82+
return new Promise<string>((resolve, reject) => {
83+
loader.fs.readFile(filename, (err: Error, data: Buffer) => {
84+
if (err) {
85+
reject(err);
86+
return;
87+
}
88+
89+
const content = data.toString();
90+
resolve(content);
91+
});
92+
});
93+
}
94+
}),
6795
postcssUrl({
6896
filter: ({ url }: PostcssUrlAsset) => url.startsWith('~'),
6997
url: ({ url }: PostcssUrlAsset) => {
@@ -109,7 +137,8 @@ export function getStylesConfig(wco: WebpackConfigOptions) {
109137
'autoprefixer': 'autoprefixer',
110138
'postcss-url': 'postcssUrl',
111139
'cssnano': 'cssnano',
112-
'postcss-custom-properties': 'customProperties'
140+
'postcss-custom-properties': 'customProperties',
141+
'postcss-import': 'postcssImports',
113142
},
114143
variables: { minimizeCss, baseHref, deployUrl, projectRoot }
115144
};
@@ -182,7 +211,7 @@ export function getStylesConfig(wco: WebpackConfigOptions) {
182211
loader: 'css-loader',
183212
options: {
184213
sourceMap: cssSourceMap,
185-
importLoaders: 1,
214+
import: false,
186215
}
187216
},
188217
{

packages/@angular/cli/package.json

+1
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@
6161
"opn": "~5.1.0",
6262
"portfinder": "~1.0.12",
6363
"postcss-custom-properties": "^6.1.0",
64+
"postcss-import": "^11.0.0",
6465
"postcss-loader": "^2.0.10",
6566
"postcss-url": "^7.1.2",
6667
"raw-loader": "^0.5.1",

packages/@angular/cli/tasks/eject.ts

+1
Original file line numberDiff line numberDiff line change
@@ -579,6 +579,7 @@ export default Task.extend({
579579
'json-loader',
580580
'karma-sourcemap-loader',
581581
'less-loader',
582+
'postcss-import',
582583
'postcss-loader',
583584
'postcss-url',
584585
'raw-loader',

0 commit comments

Comments
 (0)