2createStudio / postcss-sprites

Generate sprites from stylesheets.
MIT License
413 stars 50 forks source link

why an error to use postcss-sprites Responsive Spritesheets #42

Closed tansj526 closed 8 years ago

tansj526 commented 8 years ago

postcss-sprites: An error occurred while processing files - postcss.decl is not a function TypeError: postcss.decl is not a function at Object.sprites.hooks.onUpdateRule (D:\nodeJs\postCss\gulpfile.js:36:51) at D:\nodeJs\postCss\node_modules\postcss-sprites\lib\index.js:464:17 at D:\nodeJs\postCss\node_modules\gulp-postcss\node_modules\postcss\lib\container.js:154:24 at D:\nodeJs\postCss\node_modules\precss\node_modules\postcss\lib\container.js:73:26 at Rule.each (D:\nodeJs\postCss\node_modules\precss\node_modules\postcss\lib\container.js:60:22) at Rule.walk (D:\nodeJs\postCss\node_modules\precss\node_modules\postcss\lib\container.js:72:21) at D:\nodeJs\postCss\node_modules\gulp-postcss\node_modules\postcss\lib\container.js:75:32 at Root.each (D:\nodeJs\postCss\node_modules\gulp-postcss\node_modules\postcss\lib\container.js:60:22) at Root.walk (D:\nodeJs\postCss\node_modules\gulp-postcss\node_modules\postcss\lib\container.js:72:21) at Root.walkComments (D:\nodeJs\postCss\node_modules\gulp-postcss\node_modules\postcss\lib\container.js:152:21) at updateReferences (D:\nodeJs\postCss\node_modules\postcss-sprites\lib\index.js:447:7) at D:\nodeJs\postCss\node_modules\postcss-sprites\lib\index.js:126:11 at tryCatcher (D:\nodeJs\postCss\node_modules\postcss-sprites\node_modules\bluebird\js\release\util.js:16:23) at Promise._settlePromiseFromHandler (D:\nodeJs\postCss\node_modules\postcss-sprites\node_modules\bluebird\js\release\promise.js:494:35) at Promise._settlePromise (D:\nodeJs\postCss\node_modules\postcss-sprites\node_modules\bluebird\js\release\promise.js:555:18) at Promise._settlePromise0 (D:\nodeJs\postCss\node_modules\postcss-sprites\node_modules\bluebird\js\release\promise.js:600:10)

vvasilev- commented 8 years ago

I checked the tests of "Responsive Spritesheets" example and everything works as expected. Can you paste the contents of your gulpfile so I can help you?

vvasilev- commented 8 years ago

The problem is that you use gulp-postcss instead of postcss so your gulpfile.js should like the snippet below.

var gulpPostss = require('gulp-postcss');
var postcss = require('postcss');

// ....rest of your code
tansj526 commented 8 years ago

no,my gulpfile.js like this: var gulp = require('gulp'), postcss = require('gulp-postcss'), autoprefixer = require('autoprefixer'), cssnext = require('cssnext'), precss = require('precss'), sourcemaps = require('gulp-sourcemaps'), calc = require('postcss-calc'), mqpacker = require("css-mqpacker"), sprites = require('postcss-sprites').default;

vvasilev- commented 8 years ago

Just require the postcss module and everything will work as expected.

var gulpPostss = require('gulp-postcss');
var postcss = require('postcss');

// ....rest of your code
tansj526 commented 8 years ago

It's ok, thank you!