Skip to content

Commit 2971169

Browse files
committed
chore(): sass support
1 parent 67e70a0 commit 2971169

File tree

3 files changed

+33
-2
lines changed

3 files changed

+33
-2
lines changed

addon/ng2/models/webpack-build-common.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ export function getWebpackCommonConfig(projectRoot: string, sourceDir: string) {
5353
{ test: /\.css$/, loaders: ['raw-loader', 'postcss-loader'] },
5454
{ test: /\.styl$/, loaders: ['raw-loader', 'postcss-loader', 'stylus-loader'] },
5555
{ test: /\.less$/, loaders: ['raw-loader', 'postcss-loader', 'less-loader'] },
56-
{ test: /\.scss$/, loaders: ['raw-loader', 'postcss-loader', 'sass-loader'] },
56+
{ test: /\.scss$|\.sass$/, loaders: ['raw-loader', 'postcss-loader', 'sass-loader'] },
5757
{ test: /\.(jpg|png)$/, loader: 'url-loader?limit=128000'},
5858
{ test: /\.html$/, loader: 'raw-loader' }
5959
]

addon/ng2/models/webpack-build-test.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ const getWebpackTestConfig = function(projectRoot, sourceDir) {
6060
{ test: /\.css$/, loaders: ['raw-loader', 'postcss-loader'] },
6161
{ test: /\.styl$/, loaders: ['raw-loader', 'postcss-loader', 'stylus-loader'] },
6262
{ test: /\.less$/, loaders: ['raw-loader', 'postcss-loader', 'less-loader'] },
63-
{ test: /\.scss$/, loaders: ['raw-loader', 'postcss-loader', 'sass-loader'] },
63+
{ test: /\.scss$|\.sass$/, loaders: ['raw-loader', 'postcss-loader', 'sass-loader'] },
6464
{ test: /\.(jpg|png)$/, loader: 'url-loader?limit=128000' },
6565
{ test: /\.html$/, loader: 'raw-loader', exclude: [path.resolve(projectRoot, `./${sourceDir}/index.html`)] }
6666
],

tests/e2e/e2e_workflow.spec.js

+31
Original file line numberDiff line numberDiff line change
@@ -326,6 +326,37 @@ describe('Basic end-to-end Workflow', function () {
326326
sh.rm('-f', scssPartialFile);
327327
});
328328

329+
it_not_mobile('Supports sass in styleUrls', function() {
330+
this.timeout(420000);
331+
332+
let cssFilename = 'app.component.css';
333+
let sassFilename = 'app.component.sass';
334+
let componentPath = path.join(process.cwd(), 'src', 'app');
335+
let componentFile = path.join(componentPath, 'app.component.ts');
336+
let cssFile = path.join(componentPath, cssFilename);
337+
let sassFile = path.join(componentPath, sassFilename);
338+
let sassExample = '@import "app.component.partial";\n\n.outer\n .inner\n background: #fff';
339+
let sassPartialFile = path.join(componentPath, '_app.component.partial.sass');
340+
let sassPartialExample = '.partial\n @extend .outer';
341+
let componentContents = fs.readFileSync(componentFile, 'utf8');
342+
343+
sh.mv(cssFile, sassFile);
344+
fs.writeFileSync(sassFile, sassExample, 'utf8');
345+
fs.writeFileSync(sassPartialFile, sassPartialExample, 'utf8');
346+
fs.writeFileSync(componentFile, componentContents.replace(new RegExp(cssFilename, 'g'), sassFilename), 'utf8');
347+
348+
sh.exec(`${ngBin} build`);
349+
let destCssBundle = path.join(process.cwd(), 'dist', 'main.bundle.js');
350+
let contents = fs.readFileSync(destCssBundle, 'utf8');
351+
expect(contents).to.include('.outer .inner');
352+
expect(contents).to.include('.partial .inner');
353+
354+
sh.mv(sassFile, cssFile);
355+
fs.writeFileSync(cssFile, '', 'utf8');
356+
fs.writeFileSync(componentFile, componentContents, 'utf8');
357+
sh.rm('-f', sassPartialFile);
358+
});
359+
329360
// Mobile mode doesn't have styles
330361
it_not_mobile('Supports less in styleUrls', function() {
331362
this.timeout(420000);

0 commit comments

Comments
 (0)