Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在nodejs中将请求管道化到干净的css中?_Css_Node.js_Request_Minify_Clean Css - Fatal编程技术网

如何在nodejs中将请求管道化到干净的css中?

如何在nodejs中将请求管道化到干净的css中?,css,node.js,request,minify,clean-css,Css,Node.js,Request,Minify,Clean Css,我试图将请求输出通过管道传输到干净的css中,以缩小并将其作为响应提供。所讨论的示例应用程序是基于restify构建的 目标代码示例: var url = "http://www.example.com/css/style.css"; request.get(url).pipe(minify()).pipe(res); 如何定义minify()函数来接受流并返回流。我试过几十个软件包,都没用。 非常感谢您的帮助 您可以创建变换流。它从请求创建的流中获取CSS代码。get,执行缩小魔术并返回缩小

我试图将请求输出通过管道传输到干净的css中,以缩小并将其作为响应提供。所讨论的示例应用程序是基于restify构建的

目标代码示例:

var url = "http://www.example.com/css/style.css";
request.get(url).pipe(minify()).pipe(res);
如何定义minify()函数来接受流并返回流。我试过几十个软件包,都没用。
非常感谢您的帮助

您可以创建变换流。它从
请求创建的流中获取CSS代码。get
,执行缩小魔术并返回缩小的CSS

下面是一个工作示例:

const restify = require('restify');
const request = require('request');
const { Transform } = require('stream');
const CleanCSS = require('clean-css');

const server = restify.createServer();
const cleanCss = new CleanCSS();
const url = 'http://www.example.com/css/style.css';

function createMinifyTransform() {
    return new Transform({
        transform(chunk, encoding, callback) {
            const output = cleanCss.minify(chunk.toString());
            this.push(output.styles);
            callback();
        }
    });
}

function respond(req, res) {
    request
        .get(url)
        .pipe(createMinifyTransform())
        .pipe(res);
}

server.get('/', respond);

server.listen(8080, () => console.log('%s listening at %s', server.name, server.url));

我正在尝试用你的代码设置一个运行的迷你应用程序。请求来自哪里?是吗?@PatrickHund是的,它来自该请求包。该应用程序被设置为一种反向代理服务器,尽管是定制的。我在上面代码中遇到的一个问题是,对同一文件的后续请求会出现空HTTP 200响应。我想看看会出现什么问题,同时是否最好一次处理整个文件,以提供更好的压缩机会?Whoopsie,修复了代码示例。你必须创建一个新的迷你转换与每一个要求。工程漂亮!