将参数转换为字符串的NPM任务

时间:2016-07-27 09:38:28

标签: node.js npm

我尝试使用参数运行NPM任务,在我的NPM构建设置中创建一些灵活性。

这些是我的脚本

"styles": "node-sass",
"build:styles": "npm run styles -- --source-map false --output-style compressed --output ./public/styles ./build/styles",
"watch:styles": "npm run styles -- --source-map true --output-style nested --output ./public/styles ./build/styles --watch"

我跑" npm run build:styles"返回这个:

node-sass "--source-map" "false" "--output-style" "compressed" "--output" "./public/styles" "./build/styles"

这导致我的源图在名为" false"的文件夹中创建。因为设置为--source-map,它真的应该用作布尔值而不是创建那些源图。

任何提示/想法如何解决此问题?

1 个答案:

答案 0 :(得分:1)

省略--source-map选项以获得所需的行为(无源地图)。

我自己也遇到了这个问题,从node-sass v4.5.3开始,--source-map选项具有反直觉的行为:

  1. 默认情况下,没有--source-map选项,不会创建源地图
  2. --source-map <directory-name>在指定目录中创建源地图
  3. --source-map true在css输出目录中创建源映射(由-o / --output选项提供)。有人可能认为--source-map false表现一致(如false肯定似乎就像布尔值一样),但没有 - 它将false视为目录名。
  4. 即使直接调用二进制文件(至少在macOS上,npm v5.3.0,节点8.2.1)也会发生这种情况,它似乎是一个逻辑错误,而不是与npm相关的解析错误。