2017-02-19 46 views
0

我在使用Angular 2.4(不使用Visual Studio)的Chrome上使用Windows 7進行開發,並下載了quickstart,並且所有工作都正常。package.json中的npm腳本如何「知道」文件的位置(角度爲2.x)?

現在,我想查看我正在使用的'節點'的版本,因此我在項目文件夾(其中package.json文件所在的位置)的命令提示符下輸入node -v,並且一切正常。

現在,我想看看我正在使用的Typescript的版本,因此我輸入tsc -v但它找不到它。

如果我在package.json"tsc-version": "tsc -v"中輸入腳本,然後運行npm run tsc-version命令,我確實得到了Typescript版本號。

npm怎麼知道tsc的JavaScript文件是?

我知道它與文件夾結構有關,./node_modules/.bin文件夾如何發揮作用?

任何人都可以解釋這裏發生了什麼?

回答

1

Typescript在node_modules\.bin下安裝tsc作爲本地安裝的一部分。

npm.bin目錄附加到shell的預先存在的路徑。

npmdocs說這對npm run腳本:

除了外殼的預先存在的PATH,NPM運行增加了 node_modules/.bin文件提供給腳本的路徑。由本地安裝的依賴關係提供的任何二進制文件 都可以在沒有 node_modules/.bin前綴的情況下使用。例如,如果在你的包 抽頭devDependency,你應該寫:的

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

代替

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

運行測試。

的package.json之外,你需要安裝tsc作爲全局依賴使用它沒有完全限定路徑:

npm install -g typescript 
相關問題