I use node-sass to compile all my Sass files to a master.css.
This works well but now I want to add prefixes. I would like to use only the npm, no Gulp or Grunt.
Here my package.json file:
{
"name": "xxxxxx.com",
"version": "1.0.0",
"description": "",
"watches": {
"sass": "src/scss/**"
},
"scripts": {
"sass": "node-sass src/scss/master.scss -o dist/css/ --style compressed",
"prefix": "postcss --use autoprefixer dist/css/master.css -d dist/css/master.css",
"dev": "rerun-script"
},
"author": "Jan",
"license": "ISC",
"devDependencies": {
"autoprefixer": "^6.3.1",
"browserify": "^13.0.0",
"clean-css": "^3.4.9",
"node-sass": "^3.4.2",
"postcss-cli": "^2.5.0",
"rerun-script": "^0.6.0",
"uglifyjs": "^2.4.10"
}
}
I do not get it to run. I use autoprefixer and postcss-cli. The modules have been installed locally in the project directory. I think my "script" part is false.
How would that look right?
{
"name": "npm-node-sass",
"version": "0.0.1",
"devDependencies": {
"autoprefixer": "^6.3.3",
"browserify": "^13.0.0",
"cssnano": "^3.5.2",
"jshint": "^2.9.1",
"node-sass": "^3.4.2",
"postcss": "^5.0.16",
"postcss-cli": "^2.5.1",
"watch": "^0.17.1"
},
"scripts": {
"prebuild:css": "node-sass --include-path scss src/sass/styles.scss public/css/styles.css",
"build:css": "postcss --use autoprefixer -b 'last 2 versions' < public/css/styles.css | postcss --use cssnano > public/css/styles.min.css",
"lint": "jshint src/js/*.js",
"build:js": "browserify src/js/main.js > public/js/bundle.js",
"build": "npm run build:css && npm run build:js",
"prebuild:js": "npm run lint",
"build:watch": "watch 'npm run build' src/*"
}
}
You need postcss and postcss-cli as a devDependency.
Let's say we have styles.sass file in sass directory. I've used something like this (my package.json):
{
"scripts": {
"c":"node-sass sass/styles.sass -o .|postcss styles.css -u autoprefixer -r",
"w":"watch 'npm run c' sass"
}
}
terminal command: npm run w
. At this point each saving of styles.sass file will produce compiled and prefixed styles.css file automatically. I have postcss-cli, node-sass and watch packages installed globally.