Случай 1: имя переменной используется вместо значенияНПМ скрипты - конфигурационные переменные и подстановки команды не работают в package.json
package.json:
{
"name": "example",
"config": {
"url": "localhost/dev"
},
"scripts": {
"watch": "browser-sync start --files \"./**/*, !.node_modules/, !src\" --proxy $npm_package_config_url"
}
}
$npm run watch
открывает http://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: окна 10 | npm 3.5.1 | узел 4.2.2 | ГИТ-Баш 2.6.0
cross-env поможет переменным среды _setting_ перекрестная платформа, если вы хотите переменные среды _use_ в ваших сценариях в кросс-платформенном режиме, используйте [cross-var] (http://npm.im/cross-var) – kentcdodds