A simple CLI system for compiling sass down to css with additional support for other options and features
You can view the changelog here: https://github.com/dhershman1/sass-pack/blob/master/changelog.md
PLEASE NOTE: as of 2.0.0 theme has been removed as an option
sass-pack [options]- Run sass-pack using your options-s --source <path>- Set the source path of page based scss (If you have floating sass files with your pages) -optional-m --manifest <path>- Set the path of yourcss manifest json-optionaldefault:/-o --output <path>- Set the path for the output css -optionaldefault:/-n --minify <minifyType>- Set the style of minifying can benested,expanded,compact, orcompressed-optionaldefault:nested-x --sourcemaps <path>- Tell sass pack if you want to generate sourcemaps as well -optionaldefault:false-q --hardquit- Add this tag if when sass-pack runs into a Sass syntax error you would like it to hard quit the process, if you're using a watch tool you can leave this off and sass-pack will await changes and try again.-a --alias <path>- The path to replace the alias with-e --external <path>- Path to read for your external files can accept a glob-f --folders-booleanstyle argument that tells sass-pack to use folder/dir names containing themes instead of file names
Example:
sass-pack -o public/css -s src/app,public/scss/themes -m src/config/css_manifest.json
sass-pack -o dist/css -s src/app/scss/main,src/app/scss/themes -f -q
OR
sass-pack --output=public/css --source=src/app,public/scss/themes --manifest=src/config/css_manifest.json
Sass-Pack can now be used as a simple function call, it will return a promise and once everything is finished it will resolve said promise
The options are the same as if using the cli to send a list of paths when using the API put the paths into an array of strings
AS OF >=v1.5.0 using single letter property names is NO LONGER supported
source- Source file paths (Supports Globs)output- Output path (Supports Globs)manifest- Manifest path (Supports Globs)minify- Minify typehardquit- Kill process ifrejectis triggeredsourcemaps- Path to sourcemaps (Supports Globs)alias- Path to replace alias withfolders- Boolean to tell sass-pack to use folder namesexternal- Path to tell sass-pack what files to pack into their own css files to output (Supports Globs)
Example:
const sassPack = require('sass-pack');
sassPack({
source: [path.join('tests', '*.scss'), path.join('tests', 'srcTest', '*.scss')],
output: path.join('tests', 'outputs'),
manifest: path.join('tests', 'outputs', 'cssmanifest.json'),
}).then(() => {
//Do some things once sass pack is finished
});The hard quit option was added if the user wishes for sass-pack to perform a process.exit(1) if any issue at all (including sass syntax errors) triggers a reject in the promise chain
sass-pack -o public/css -s src/app,public/scss/themes -m src/config/css_manifest.json -q
OR
sass-pack --output=public/css --source=src/app,public/scss/themes --manifest=src/config/css_manifest.json --hardquit
If using the API just add hardquit: true to your options object
Alias adds the ability to shorten common paths down so you can have a cleaner import setup in your sass I added this because sass doesn't seem to support dynamic import support like LESS.
So assuming my test_home.scss lived two dirs above my importer I'd have this:
@import '../../test_home.scss';
a {
margin: 1rem;
.testing {
font-weight: 400;
}
}
But if I set my alias to -a tests/srcTest/ and then change the import to: @import @/test_home.scss sass-pack will auto convert the alias before compiling down to css
you would do the same thing in the API
const sassPack = require('sass-pack');
sassPack({
source: [path.join('tests', '*.scss'), path.join('tests', 'srcTest', '*.scss')],
output: path.join('tests', 'outputs'),
manifest: path.join('tests', 'outputs', 'cssmanifest.json'),
alias: 'my/alias/path'
}).then(() => {
//Do some things once sass pack is finished
});With v2.1.0 there are 2 new options introduced, the ability to set a folders boolean, and the ability to set a path to some external files
So with this option sass-pack will read the folder that the file lives in and use it as the theme name, instead of the actual file name itself.
Example:
/themes
| /default
| /thing.scss
| /theme2
| /index.scss
sass-pack -o output -s themes/**/*.scss -f
then:
/output
| /default.css
| /theme2.css
The external option allows you to bring in scss files that you want to have their own css output after compile.
Example:
/themes
| /default
| /thing.scss
| /thing-email.scss
| /theme2
| /index.scss
| /theme2-email.scss
sass-pack -o output -s themes/**/!(*-email).scss -f -e themes/**/*-email.scss
then:
/output
| /default.css
| /theme2.css
| /theme2-email.css
| /thing-email.css