2016-12-01 73 views
0

時,我已經有了一個SASS編譯安裝在我的package.json如下標準輸入遇到最大線路長度:PostCSS cli來解釋sourcemap

"scripts": { 
    "sass": "node-sass sass/app.scss --source-map-root file://${PWD}/ --source-map-embed true", 
    "postcss:autoprefixer": "postcss --use autoprefixer -b 'last 2 versions' --map", 
    "css": "npm run sass -s | npm run postcss:autoprefixer -s | exorcist css/app.css.map > css/app.css" 
    } 

這已運行正常了一段時間創建外部sourcemaps。然而最近,postcss拋出了一個未公開的評論錯誤。有問題的評論是sourceMappingURL的開始標記。 sourceMappingURL被node-sass作爲dataUri與--source-map-embed true命令一起嵌入,這對於源映射完全可以使用此方法是必需的,因爲看起來node-sass不會將它們寫入文件(如果它的管道輸出爲標準輸出。

我猜dataUri已經有這麼長時間它打到某種最大線路長度。無論這個限制是在bash中(我在Mac OSX上),node.js還是postcss-cli我都不確定?這是我可以手動增加,還是有其他解決方法嗎?

更新: 經過進一步研究,這個問題似乎從read-file-stdin它返回從process.stdin一個不完整的文件阻止。我不太熟悉節點流,但read-file-stdin依靠stream.pipe來讀取數據,我相信使用gather-stream來收集流塊。但是這不起作用。如果我改變css腳本如下:npm run sass -s | test.js其中test.js如下:

#!/usr/bin/env node 
const gather = require('gather-stream'); 

process.stdin.pipe(gather(complete)); 

function complete (err, data) { 
    console.log(data.toString('utf8')); 
} 

控制檯輸出是不完整的文件

+0

好吧,downvote評論也許是公平的,雖然有點苛刻。請在上面找到更新的問題。 – baseten

回答