Ответ 1
Чтобы сделать его кросс-платформенным, используйте cross-var
:
"scripts": {
"build": "cross-var md %npm_package_version%\helloworld"
}
Я создаю package.json и использую "npm run" для запуска некоторых скриптов, в точности, https://docs.npmjs.com/misc/scripts.
My script должен будет расширить некоторые переменные среды, и я хочу сделать его совместимым с платформой. Например, мой script сказал бы
"scripts": {
"build": "md %npm_package_version%\helloworld"
}
Но он в настоящее время работает в Windows, потому что расширение переменных среды. Linux будет использовать md $npm_package_version\helloworld
.
Имеет ли npm
механизм для преобразования расширения переменных среды, чтобы он работал на разных платформах?
Чтобы сделать его кросс-платформенным, используйте cross-var
:
"scripts": {
"build": "cross-var md %npm_package_version%\helloworld"
}
npm
, похоже, не имеет межплатформенного способа расширения переменных окружения, но у вас есть node, поэтому я бы рекомендовал реализовать все ваши скрипты как скрипты node, тогда вы можете доступ process.env
и функции межплатформенной файловой системы, такие как mkdirSync
.
package.json
"scripts": {
"build": "node utils/mdkir.js"
}
Utils/mkdir.js
'use strict';
var fs = require('fs');
fs.mkdirSync(process.env.npm_package_version + '/helloworld');