Skip to content

Commit d128a88

Browse files
feat(theme-tasks): default sass compiler to use dart sass and move node-sass as an external dependency
1 parent a7227f0 commit d128a88

File tree

7 files changed

+62
-302
lines changed

7 files changed

+62
-302
lines changed

projects/js-themes-toolkit/packages/liferay-theme-tasks/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
"lodash": "^4.17.11",
3131
"minimist": "^1.1.0",
3232
"node-bourbon": "4.2.3",
33-
"node-sass": "^6.0.1",
3433
"npm-keyword": "^5.0.0",
3534
"opn": "^5.4.0",
3635
"package-json": "^5.0.0",
@@ -47,10 +46,11 @@
4746
"description": "A set of tasks for building and deploying Liferay Portal themes.",
4847
"devDependencies": {
4948
"liferay-frontend-theme-styled": "6.0.6",
50-
"liferay-frontend-theme-unstyled": "6.0.6"
49+
"liferay-frontend-theme-unstyled": "6.0.6",
50+
"node-sass": "^6.0.1"
5151
},
5252
"engines": {
53-
"node": ">=8.0.0"
53+
"node": ">=14.0.0"
5454
},
5555
"keywords": [
5656
"liferay",

projects/js-themes-toolkit/packages/liferay-theme-tasks/theme/tasks/__tests__/build.test.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,8 @@ describe('using lib_sass', () => {
122122
sassOptions: (defaults) => {
123123
sassOptionsCalled = true;
124124

125+
defaults.dartSass = false;
126+
125127
assertTruthy(defaults.includePaths);
126128

127129
return defaults;
@@ -152,7 +154,6 @@ describe('using lib_sass', () => {
152154
distName: 'base-theme',
153155
gulp: new Gulp(),
154156
hookFn: buildHookFn,
155-
sassOptions: {dartSass: true},
156157
}),
157158
namespace: 'dart_sass_build_task',
158159
themeConfig: {},

projects/js-themes-toolkit/packages/liferay-theme-tasks/theme/tasks/__tests__/deploy.test.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,9 @@ beforeEach(() => {
3434
registerTasks({
3535
distName: 'base-theme',
3636
gulp: new Gulp(),
37+
sassOptions: {
38+
dartSass: false,
39+
},
3740
}),
3841
namespace: 'deploy_task',
3942
themeName: 'base-theme-7-2',

projects/js-themes-toolkit/packages/liferay-theme-tasks/theme/tasks/__tests__/kickstart.test.js

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,11 @@ describe('globally installed theme', () => {
3333

3434
beforeEach(() => {
3535
tempTheme = setupTempTheme({
36-
init: () => registerTasks({gulp: new Gulp()}),
36+
init: () =>
37+
registerTasks({
38+
gulp: new Gulp(),
39+
sassOptions: {dartSass: false},
40+
}),
3741
namespace: 'kickstart_task_global',
3842
themeName: 'base-theme',
3943
version: '7.1',
@@ -96,7 +100,11 @@ describe('npm theme', () => {
96100

97101
beforeEach(() => {
98102
tempTheme = setupTempTheme({
99-
init: () => registerTasks({gulp: new Gulp()}),
103+
init: () =>
104+
registerTasks({
105+
gulp: new Gulp(),
106+
sassOptions: {dartSass: false},
107+
}),
100108
namespace: 'kickstart_task_npm',
101109
});
102110

projects/js-themes-toolkit/packages/liferay-theme-tasks/theme/tasks/__tests__/status.test.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ let tempTheme;
1414

1515
beforeEach(() => {
1616
tempTheme = setupTempTheme({
17-
init: () => registerTasks({gulp: new Gulp()}),
17+
init: () =>
18+
registerTasks({gulp: new Gulp(), sassOptions: {dartSass: false}}),
1819
namespace: 'status_task',
1920
});
2021
});

projects/js-themes-toolkit/packages/liferay-theme-tasks/theme/tasks/build/compile-css.js

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,15 +35,28 @@ module.exports = function () {
3535
const {options} = project;
3636

3737
const sassOptions = getSassOptions(options.sassOptions, {
38-
dartSass: false,
38+
dartSass: true,
3939
includePaths: getSassIncludePaths(),
4040
sourceMap: true,
4141
});
4242

43+
let nodeSass;
44+
45+
if (!sassOptions.dartSass) {
46+
try {
47+
nodeSass = require('node-sass');
48+
}
49+
catch (_error) {
50+
console.error(
51+
'`node-sass` is not found. Try installing it first `npm install node-sass`.'
52+
);
53+
}
54+
}
55+
4356
const gulpIf = require('gulp-if');
4457
const gulpSass = sassOptions.dartSass
4558
? require('./sass')
46-
: require('gulp-sass')(require('node-sass'));
59+
: require('gulp-sass')(nodeSass);
4760
const gulpSourceMaps = require('gulp-sourcemaps');
4861

4962
const postCSSOptions = getPostCSSOptions(options.postcss);

0 commit comments

Comments
 (0)