管道无法按预期运行 npm 脚本
Piping not working as expected 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"
}
}
如果你真的需要 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
你可以使用 Unix tee
command, or the node equivalent, https://github.com/stefanmaric/ntee。
node-sass main.scss | tee main.css | cssnano main.min.css
如果您的脚本只需要在 Unix 上运行,请使用 tee
。如果它必须在 windows 上工作,您将需要使用 ntee
.
我试图通过将转译的 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"
}
}
如果你真的需要 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
你可以使用 Unix tee
command, or the node equivalent, https://github.com/stefanmaric/ntee。
node-sass main.scss | tee main.css | cssnano main.min.css
如果您的脚本只需要在 Unix 上运行,请使用 tee
。如果它必须在 windows 上工作,您将需要使用 ntee
.