web-dev-qa-db-ja.com

npmインストール後のタイピングが正しく機能しない

次のpackages.jsonがあります。

{
"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 installを実行すると、エラーが発生します:'typings' is not recognized as an internal or external command, operable program or batch file.

Angular 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ファイルを実行すると、まったく異なる結果になる理由がわかりません。

9
Gabe O'Leary

Gabe O'Leary は正しい( comment を参照)、最初にタイピングをグローバルにインストールしようnpm install typings -g Macを使用している場合は、Sudoコマンドを使用する必要があるかもしれませんSudo npm install typings -g

25
Pere Pages

私は同じ問題に直面していました。あなたはプロジェクトフォルダにtypings.jsonファイルを追加する必要があります。このリンクを確認してください: https://angular.io/guide/quickstart

2
sushil bansal

ionic 2で、ウィンドウ10で同じ問題に直面した後、npm install typings -g、インストール後にコマンドを入力してみましたが、うまくいきました。ionic 2 with socket.ioで作業していたため、実行する必要がありました。
typings install dt~socket.io-client --save --global、動作しています。

これがお役に立てば幸いです。

1
user3563484

上記の設定を機能させるために、タイピングをグローバルにインストールする必要はありません。 npm installを実行するときは、タイピングバイナリへのシンボリックリンクを/node_modules/.bin/typingsに追加し、ポストインストールスクリプトを/node_modules/.binをPATH環境変数に追加して実行する必要があります。

ただし、設定を見ると、npm install --productionを使用して(またはNODE_ENV環境変数をproductionに設定して)インストールすると、タイピングはdevDependenciesにあるためインストールされず、次のようになります。エラー。これが問題の本当の原因かもしれません。これを修正する方法に関するいくつかの提案については、 この質問 を参照してください。

0
rjmunro

ああEm Gee。このツールはSO壊れやすいです!

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は「グローバル」インストールを目的としているため、単一のプロジェクトの一部にしたい場合(たとえば、単一のプロジェクトをチェックアウトしてビルドできるようにしたい場合)でも、悪い!プロジェクトツールチェーンを取得するには、ソリューション全体のpackage.jsonファイルを使用してソリューションをチェックアウトする必要があります。

デフォルトのタイピングのインストールでは、Node.jsバイナリフォルダーが変更されることに注意してください。したがって、複数のNode.jsインストールがある場合(おそらく少なくとも3つ、1つはVS update 2でインストールされ、少なくとも1つはNuGetを使用してインストールされ、1つ以上が個別のNode.jsインストールとしてインストールされて、古いバージョンの欠陥を克服します)他の2つのソースから入手可能)、あなたの痛みはすでに始まっています。

これに対処するために、開発チームの一部がさまざまなMSサポート記事に従って外部Webツールディレクトリを変更し、チームの一部のメンバーが異なるNode.jsバージョンをインストールしているなどの事実を追加します。 。

それで、解決策は何ですか?私個人的には、「typings install」をgulp.jsの「run on project startup」イベントにプラグインして、プロジェクト固有の「typings」パッケージをターゲットとするように設定します。これで、1つのプロジェクトをチェックアウトしてビルドできるようになりました。チームの誰もが、コマンドラインまたはパッケージマネージャーコンソールで「typings install」を実行できる必要はありませんが、それを維持する責任者は1人だけです。

これらのパスも役立つ場合があります。私がこの診断のほとんどを行ったマシンのアップグレード中のさまざまな時点で、npm install typings -gtypings.cmdファイルを別のディレクトリに配置しました。

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

angular 1とangular 2のソリューションを入れ子にして、Gitリポジトリに保存することになります...

入力するためにこのコマンドを実行しようとしたときに表示されません

npm run typings install

それはうまくいきませんでした。それから私はこのstackoverflowページを見つけてみました

npm install typings -g

私にとっての問題は、JOBで.typingsrcファイルを継承していたことでした。このファイルは、実行中のフォルダーにnpm installなどではないのに、ディレクトリまたは上の2つなので、エラーが発生するのも不思議ではありません。

その目的はプロキシを回避することであったので、単にold.typingsrcに名前を変更しましたproxy="http://proxy-chain.company.com:911"

これは多くの人には役に立たないかもしれませんが、私は他の人を助けるかもしれませんそれはプロキシを持っていると思います!

0
Tom Stickel