2016-02-26 171 views
9

分型,我有以下packages.json:NPM安裝後不能正常工作

{ 
"name": "shopping-assistant-angular", 
"version": "1.0.0", 
"scripts": { 
    "start": "concurrent \"npm run tsc:w\" \"npm run lite\" ",  
    "tsc": "tsc", 
    "tsc:w": "tsc -w", 
    "lite": "lite-server", 
    "typings": "typings", 
    "postinstall": "typings install" 
}, 
"license": "ISC", 
"dependencies": { 
    "angular2": "2.0.0-beta.7", 
    "systemjs": "0.19.23", 
    "es6-promise": "^3.0.2", 
    "es6-shim": "^0.33.3", 
    "reflect-metadata": "0.1.2", 
    "rxjs": "5.0.0-beta.2", 
    "zone.js": "0.5.14" 
}, 
"devDependencies": { 
    "bower": "^1.7.7", 
    "concurrently": "^1.0.0", 
    "grunt": "^0.4.5", 
    "grunt-chrome-manifest": "^0.3.0", 
    "grunt-contrib-clean": "^1.0.0", 
    "grunt-contrib-concat": "^0.5.1", 
    "grunt-contrib-copy": "^0.8.2", 
    "grunt-contrib-cssmin": "^0.14.0", 
    "grunt-contrib-htmlmin": "^0.6.0", 
    "grunt-contrib-uglify": "^0.11.1", 
    "grunt-filerev": "^2.3.1", 
    "grunt-ts": "^5.3.2", 
    "grunt-usemin": "^3.1.1", 
    "lite-server": "^2.0.1", 
    "load-grunt-tasks": "^3.4.0", 
    "typescript": "1.7.5", 
    "typings": "^0.6.8" 
} 
} 

當我運行NPM在我的目錄中安裝我得到一個錯誤:'typings' is not recognized as an internal or external command, operable program or batch file.

在角2單觸他們使用以下packages.json開始指南:

{ 
"name": "angular2-quickstart", 
"version": "1.0.0", 
"scripts": { 
    "start": "concurrent \"npm run tsc:w\" \"npm run lite\" ",  
    "tsc": "tsc", 
    "tsc:w": "tsc -w", 
    "lite": "lite-server", 
    "typings": "typings", 
    "postinstall": "typings install" 
}, 
"license": "ISC", 
"dependencies": { 
    "angular2": "2.0.0-beta.7", 
    "systemjs": "0.19.22", 
    "es6-promise": "^3.0.2", 
    "es6-shim": "^0.33.3", 
    "reflect-metadata": "0.1.2", 
    "rxjs": "5.0.0-beta.2", 
    "zone.js": "0.5.15" 
}, 
"devDependencies": { 
    "concurrently": "^2.0.0", 
    "lite-server": "^2.1.0", 
    "typescript": "^1.7.5", 
    "typings":"^0.6.8" 
} 
} 

在所有軟件包完成安裝後,它成功運行「typings install」。

不知道爲什麼運行這些非常相似的packages.json文件導致完全不同的結果。

回答

25

Gabe O'Leary是正確的(見comment),第一次嘗試,如果你使用的是Mac,你可能需要使用sudo命令sudo npm install typings -g

+0

我應該回答我自己的問題。感謝這 –

+1

感謝您的建議。哇,這真是蹩腳... – Den

+0

謝謝!這對我有效 –

2

我正面臨同樣的問題。您需要在您的項目文件夾中添加typings.json文件。請檢查此鏈接:https://angular.io/guide/quickstart

+4

我確實在我的文件夾中有一個typings.json文件,這是我沒有安裝類型全局'npm install typings -g'修復了我的問題 –

+0

總是檢查文件名...我不小心命名了我的打字.json而不是typings.json。這有幫助! – Quinma

+0

您引用的鏈接甚至沒有提及「typings」....! –

0

哦EM嘖嘖安裝分型全球 npm install typings -g。這個工具太脆弱了!

PowerShell -> 
    OS %PATH% spec -> 
    Node.js bin folder (which one?) -> 
     typings.cmd -> 
     Tools : Options : Projects and Solutions : External Web Tools -> 
      node.js bin -> 
      Typings JavaScript files -> 
       PowerShell working directory (vs. project path) -> 
       typings.json configuration -> 

注意,npm install typings -g意味着是一個「全球性的」安裝,因此,即使你希望它是一個單一的項目的一部分(例如,你希望能夠檢查,並建立一個單一的項目) , 太糟糕了!您必須使用解決方案範圍內的文件檢出解決方案才能獲取項目工具鏈。

請注意,默認的Typings安裝會修改Node.js二進制文件夾。因此,如果您有多個Node.js安裝(您可能至少安裝了三個,其中一個安裝有VS update 2,至少一個安裝使用NuGet,一個或多個安裝爲單獨的Node.js安裝以克服舊版本中的缺陷可從其他兩個來源獲得),你的痛苦已經開始。

此外,一些開發團隊通過各種MS支持文章修改了他們的External Web Tools目錄以解決此問題,並且您的團隊的一些成員安裝了不同的Node.js版本等等。現在您的痛苦是變得真實...

那麼,有什麼解決方案?我個人而言,我將在我的gulp.js「項目啓動時運行」事件中插入「typings install」,並將其設置爲針對項目特定的「類型」包。現在,我們可以檢出並構建一個項目,團隊中的任何人都不需要能夠在命令行或程序包管理器控制檯上運行「類型安裝」,但負責維護它的人員除外。

這些路徑也可能對您有所幫助。在機器我做了最該診斷上的升級過程中的不同點,npm install typings -g放在typings.cmd文件在不同的目錄:

  • %SolutionFolder%\包\ Node.js.5.3.0 \ typings.cmd
  • C:\ Users \%username%\ AppData \ Roaming \ npm \ typings.cmd
0

您應該不需要在全局安裝類型以使上述設置生效。運行npm install時,應該在/node_modules/.bin/typings處添加到typings二進制文件的符號鏈接,並且應該在添加到PATH環境變量的/node_modules/.bin後運行後安裝腳本。

看你的設置,不過,如果你是用npm install --production(或設置爲productionNODE_ENV環境變量),分型就無法安裝,因爲它是在devDependencies,所以你會再拿到錯誤安裝。這可能是你的問題的真正原因。看看this question,看看如何解決這個問題的一些建議。

+0

angular.io教程實際上提到了運行npm install typings -g,但由於它們設置了新的package.json文件,現在不再需要它了。 –

+0

你能找出爲什麼其中一個package.json的工作,其他沒有? 如果你的'NODE_ENV'環境變量設置爲'production',你也可以導致'--production'類型的構建。 (我已經編輯了我的答案) – rjmunro

0

我傾向於有嵌套角度1級角度2的解決方案,我最終存儲在GIT中回購...

當我去運行該命令用於鍵入沒有顯示出來

npm run typings install 

即不工作。然後我發現這個計算器頁面,並試圖

npm install typings -g 

對我來說,問題是,在一個工作,我繼承了.typingsrc文件中,即使它的文件夾中不是說我是跑npm install等。在,它一定已經決定看一個目錄或2以上,因此也難怪我得到了錯誤。

我只需將其重命名爲old.typingsrc,爲宗旨裏面是繞過代理proxy="http://proxy-chain.company.com:911"

這可能不是幫助很多人,但我覺得它可以幫助別人那些僅具有代理

0

離子2,我面臨着同樣的問題上車窗,然後我試圖 npm install typings -g, 安裝我試圖分型命令後,哇,它的工作,我 用離子2 socket.io工作,我需要運行
typings install dt~socket.io-client --save --global, 現在它工作。

希望這會幫助你。

+0

你好,請添加一些格式的代碼。請參閱https://stackoverflow.com/help/formatting獲取更多信息。 – Chaithanya