当前位置:  开发笔记 > 编程语言 > 正文

NPM脚本 - 配置变量和命令替换在package.json中不起作用

如何解决《NPM脚本-配置变量和命令替换在package.json中不起作用》经验,为你挑选了1个好方法。

情况1:使用变量名而不是值

package.json:

{
  "name": "example",
  "config": {
    "url": "localhost/dev"
  },
  "scripts": {
    "watch": "browser-sync start --files \"./**/*, !.node_modules/, !src\" --proxy $npm_package_config_url"
  }
}

$npm run watchhttp://localhost:3000/$npm_package_config_url在浏览器中打开,而不是http://localhost:3000/dev

因此,$npm_package_config_url用作字符串,而不是变量.

案例2: 命令替换不起作用

{ 
  { ... },
  "scripts": {
    "rm:all": "npm rm $(ls -1 node_modules | tr '/\\n' ' ')"
   }
}

子命令列出node_modules中的文件夹.

再一次,npm run rm:all什么也不做,因为$(ls -1 node_modules | tr '/\\n' ' ')被解释为文件夹名称.

ENV:windows 10 | npm 3.5.1 | 节点4.2.2 | git-bash 2.6.0



1> Robbie..:

有点晚了,但在Windows上你需要使用 %npm_package_config_url%

有一个潜在的软件包会为你"解决"这个问题(即给你一个解决方法)(https://www.npmjs.com/package/cross-env),这个软件在npm问题帖子中被引用.

推荐阅读
Life一切安好
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有