У меня есть пакет со следующими скриптами в package.json
...
"main": "lib/index.js",
"scripts": {
"ts-compile": "PATH=$(npm bin):$PATH tsc -p src",
"preinstall": "npm install @types/node",
"postinstall": "npm run ts-compile"
},
...
Когда я запускаю npm install
, команда postinstall
должна выполняться после установки зависимостей. Ожидаемый результат заключается в том, что компилятор машинописи правильно скомпилирует файлы в /node_modules/.bin
и поместит вывод в /lib
.
Хотя это работает, как и ожидалось, при попытке на Mac, это не работает на Windows. В частности, я мог видеть, что npm пытается выполнить команду ts-compile
, но на самом деле он не производит никакого скомпилированного вывода. Когда я проверяю /src
в проводнике, я вижу, что каталог /lib
не найден, что указывает на то, что ничего не скомпилировано.
Я заметил, что если я вручную указываю путь к локальному bin в качестве префикса для команды tsc -p src
, он компилирует и выдает выходные данные. Однако мне интересно, есть ли лучшее и универсальное решение, которое будет работать во всех средах.
В общем, мне интересно, как мне изменить мой скрипт ts-compile
, чтобы он работал как на Mac, так и на Windows.