管道不能按预期工作npm脚本

时间:2016-12-07 05:29:33

标签: css node.js npm-scripts

我试图通过将已转换的css作为第一个参数传递给cssnano来使用cssnano压缩我的sass文件。它不起作用,因为它只创建一个空白文件。第一个脚本正确运行并创建压缩的css文件。这是我的package.json

{
  "name": "cssnano",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT",
  "scripts": {
    "build:css": "cssnano < main.css > main.min.css",
    "build:css1": "node-sass main.scss > main.css | cssnano > main.min.css"
  },
  "dependencies": {
    "cssmin": "^0.4.3",
    "cssnano-cli": "^1.0.5",
    "node-sass": "^3.13.0"
  }
}

2 个答案:

答案 0 :(得分:1)

如果你真的需要main.css和main.min.css,你可以试试这个(因为写入文件显然也不会将内容添加到管道中):

node-sass main.scss > main.css && cat main.css | cssnano > main.min.css

否则请使用:

node-sass main.scss | cssnano > main.min.css

答案 1 :(得分:0)

您可以使用Unix tee命令或等效节点https://github.com/stefanmaric/ntee

node-sass main.scss | tee main.css | cssnano main.min.css

如果您的脚本只能在Unix上运行,请使用tee。如果必须在Windows上运行,则需要使用ntee