【问题标题】:Building jQuery fails to minify with error "/bin/sh: line 0: test: /usr/bin/node: binary operator expected", but NodeJS is installed at /usr/bin/node构建 jQuery 无法缩小错误“/bin/sh: line 0: test: /usr/bin/node: binary operator expected”,但 NodeJS 安装在 /usr/bin/node
【发布时间】:2012-05-31 00:08:16
【问题描述】:

我正在尝试build jQuery from source,但遇到了一个奇怪的问题。

我可以构建未缩小的版本,但是当它尝试缩小 js 文件时,我收到以下错误:

> 制作 ... 构建 ./dist/jquery.js /bin/sh:第 0 行:测试:/usr/bin/node:预期二进制运算符 您必须安装 NodeJS 才能缩小 jQuery。 /bin/sh:第 0 行:测试:/usr/bin/node:预期二进制运算符 您必须安装 NodeJS 才能针对 JSHint 测试 jQuery。 /bin/sh:第 0 行:测试:/usr/bin/node:预期二进制运算符 您必须安装 NodeJS 才能调整 jQuery 的大小。

不过,奇怪的是 NodeJS 安装在 /usr/bin/node。这是怎么回事?

【问题讨论】:

    标签: jquery node.js makefile


    【解决方案1】:

    检查产生错误的行之一:

    @@if test ! -z ${JS_ENGINE}; then \
    

    这里是${JS_ENGINE}Makefile 顶部定义的地方:

    JS_ENGINE ?= `which node nodejs 2>/dev/null`
    

    如果我在我的系统上运行该命令,我会得到以下结果:

    > 哪个节点 nodejs 2>/dev/null /usr/bin/节点 /usr/bin/nodejs

    注意输出包含 2 行,而不是 1 行!

    要解决此问题,请在调用 make 时覆盖 ${JS_ENGINE} 属性,如下所示:

    make JS_ENGINE=`哪个节点nodejs 2>/dev/null |头-n 1`

    【讨论】:

    • 为什么不直接导出 JS_ENGINE="node"
    猜你喜欢
    • 2014-09-26
    • 2016-02-12
    • 1970-01-01
    • 2016-08-30
    • 1970-01-01
    • 1970-01-01
    • 2013-04-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多