2017-02-19 5 views
0

Я развиваюсь в Windows 7 на Chrome, используя Angular 2.4 (не используя Visual Studio), и загрузил quickstart, и все работает нормально.Как скрипт npm в package.json «знает», где находятся файлы (угловое 2.x)?

Теперь я хочу увидеть версию «узла», которую я использую, поэтому я ввожу node -v в командной строке в папку проекта (где находится файл package.json), и все в порядке.

Теперь, я хочу увидеть версию Typcript, которую я использую, поэтому я печатаю tsc -v, но он не может ее найти.

Если я поместил скрипт в package.json, например "tsc-version": "tsc -v", а затем запустил команду npm run tsc-version, я получу номер версии машинописного текста.

Как npm знает, где находится tsc javascript-файл?

Я знаю, что это имеет какое-то отношение к структуре папок, и как вступает в игру папка ./node_modules/.bin?

Может ли кто-нибудь объяснить, что здесь происходит?

ответ

1

Машинописная установка tsc под номером node_modules\.bin как часть локальной установки.

npm добавляет каталог .bin в ранее существовавший путь оболочки.

npmdocs сказать это о npm run сценарии:

В дополнении к уже существующему командной оболочке PATH, НПЕ запустить добавляет node_modules/.bin в PATH, предоставляемый скрипты. Любые двоичные файлы , предоставляемые локально установленными зависимостями, могут быть использованы без префикса node_modules 0b. Например, если есть devDependency на крана в вашем пакете, вы должны написать:

"scripts": {"test": "tap test/\*.js"} 

вместо

"scripts": {"test": "node_modules/.bin/tap test/\*.js"}

для запуска тестов.

Вне package.json, вам нужно будет установить tsc как глобальная зависимость, чтобы использовать его без полной квалификации путь:

npm install -g typescript 
Смежные вопросы