Skip to content

Instantly share code, notes, and snippets.

@jesstelford
Last active August 29, 2016 08:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jesstelford/3cdebdee4691ce5fdd4ae696db7f296f to your computer and use it in GitHub Desktop.
Save jesstelford/3cdebdee4691ce5fdd4ae696db7f296f to your computer and use it in GitHub Desktop.
Bug in autoprefixer v6.4.0 when used with postcss-discard-comments v2.0.4
  1. $ git clone https://gist.github.com/3cdebdee4691ce5fdd4ae696db7f296f.git
  2. cd 3cdebdee4691ce5fdd4ae696db7f296f
  3. $ npm install
  4. $ npm start
  5. See the bug:
  TypeError: Cannot read property 'constructor' of null
    at clone (/home/teddy/dev/postcss-autoprefixer-bug/node_modules/autoprefixer/lib/prefixer.js:13:21)
    at clone (/home/teddy/dev/postcss-autoprefixer-bug/node_modules/autoprefixer/lib/prefixer.js:31:19)
    at clone (/home/teddy/dev/postcss-autoprefixer-bug/node_modules/autoprefixer/lib/prefixer.js:31:19)
    at Function.Prefixer.clone (/home/teddy/dev/postcss-autoprefixer-bug/node_modules/autoprefixer/lib/prefixer.js:64:16)
    at TransformDecl.Prefixer.clone (/home/teddy/dev/postcss-autoprefixer-bug/node_modules/autoprefixer/lib/prefixer.js:112:23)
    at TransformDecl.Declaration.insert (/home/teddy/dev/postcss-autoprefixer-bug/node_modules/autoprefixer/lib/declaration.js:105:30)
    at TransformDecl.insert (/home/teddy/dev/postcss-autoprefixer-bug/node_modules/autoprefixer/lib/hacks/transform-decl.js:64:47)
    at TransformDecl.Declaration.add (/home/teddy/dev/postcss-autoprefixer-bug/node_modules/autoprefixer/lib/declaration.js:138:19)
    at TransformDecl.Prefixer.process (/home/teddy/dev/postcss-autoprefixer-bug/node_modules/autoprefixer/lib/prefixer.js:104:18)
    at TransformDecl.Declaration.process (/home/teddy/dev/postcss-autoprefixer-bug/node_modules/autoprefixer/lib/declaration.js:144:50)
  1. Comment out the line processor.use(discardComments());
  2. $ npm start
  3. Successfully prefixes.
const fs = require('fs');
const postcss = require('postcss');
const discardComments = require('postcss-discard-comments');
const autoprefixer = require('autoprefixer');
const processor = postcss();
processor.use(discardComments());
processor.use(autoprefixer());
processor
.process(fs.readFileSync('./styles.css'))
.then(({css}) => console.log(css))
.catch(error => console.error(error));
{
"name": "postcss-autoprefixer-bug",
"version": "1.0.0",
"dependencies": {
"autoprefixer": {
"version": "6.4.0",
"from": "autoprefixer@>=6.4.0 <7.0.0",
"resolved": "http://registry.npmjs.org/autoprefixer/-/autoprefixer-6.4.0.tgz"
},
"browserslist": {
"version": "1.3.6",
"from": "browserslist@>=1.3.5 <1.4.0",
"resolved": "http://registry.npmjs.org/browserslist/-/browserslist-1.3.6.tgz"
},
"caniuse-db": {
"version": "1.0.30000526",
"from": "caniuse-db@>=1.0.30000515 <2.0.0",
"resolved": "http://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000526.tgz"
},
"has-flag": {
"version": "1.0.0",
"from": "has-flag@>=1.0.0 <2.0.0",
"resolved": "http://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz"
},
"js-base64": {
"version": "2.1.9",
"from": "js-base64@>=2.1.9 <3.0.0",
"resolved": "http://registry.npmjs.org/js-base64/-/js-base64-2.1.9.tgz"
},
"normalize-range": {
"version": "0.1.2",
"from": "normalize-range@>=0.1.2 <0.2.0",
"resolved": "http://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz"
},
"num2fraction": {
"version": "1.2.2",
"from": "num2fraction@>=1.2.2 <2.0.0",
"resolved": "http://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz"
},
"postcss": {
"version": "5.1.2",
"from": "postcss@>=5.1.2 <6.0.0",
"resolved": "http://registry.npmjs.org/postcss/-/postcss-5.1.2.tgz"
},
"postcss-discard-comments": {
"version": "2.0.4",
"from": "postcss-discard-comments@>=2.0.4 <3.0.0",
"resolved": "http://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz"
},
"postcss-value-parser": {
"version": "3.3.0",
"from": "postcss-value-parser@>=3.2.3 <4.0.0",
"resolved": "http://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz"
},
"source-map": {
"version": "0.5.6",
"from": "source-map@>=0.5.6 <0.6.0",
"resolved": "http://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz"
},
"supports-color": {
"version": "3.1.2",
"from": "supports-color@>=3.1.2 <4.0.0",
"resolved": "http://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz"
}
}
}
{
"name": "postcss-autoprefixer-bug",
"private": true,
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "node index.js",
"debug": "node --inspect --debug-brk index.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"autoprefixer": "^6.4.0",
"postcss": "^5.1.2",
"postcss-discard-comments": "^2.0.4"
}
}
.spaceship {
transform: translateX(0) ;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment