7

package.jsonの見た目はこんな感じです(名前/説明/等省略)。

{
    "dependencies": {
        "express": "3.3.4",
        "jade": "0.34.x",
        "mongoose": "3.6.x"
    },
    "devDependencies": {
        "vows": "0.7.x"
    }
}

expressリポジトリで使用し、自動生成されnode app.jsた. これは機能しましたが、使用するcurl http://localhost:portと「モジュールの文字パーサーが見つかりません」というエラーが発生しました。実行npm install character-parserすると、「モジュールトランスフォーマーが見つかりません」というメッセージが表示されました。これはさらに数回発生しましたが、それらをすべてインストールした後、アプリが機能し始めました。

npm install依存関係を再帰的にインストールすることになっていると思いました。package.jsonアプリがデプロイされたときに を使用できるようにしたいので、これも心配です。

4

3 に答える 3

2

./node_modules の依存関係を収集する簡単なスクリプトを次に示します。

var fs = require("fs");

function main() {
  fs.readdir("./node_modules", function (err, dirs) {
    if (err) {
      console.log(err);
      return;
    }
    dirs.forEach(function(dir){
      if (dir.indexOf(".") !== 0) {
        var packageJsonFile = "./node_modules/" + dir + "/package.json";
        if (fs.existsSync(packageJsonFile)) {
          fs.readFile(packageJsonFile, function (err, data) {
            if (err) {
              console.log(err);
            }
            else {
              var json = JSON.parse(data);
              console.log('"'+json.name+'": "' + json.version + '",');
            }
          });
        }
      }
    });

  });
}

私が取り組んでいる 1 つのプロジェクトでは、出力は次のようになります。

"progress": "0.1.0",
"request": "2.11.4",

最後のエントリからコンマを削除することを忘れない場合は、出力をコピーして貼り付けることができます。

于 2015-01-25T14:38:42.840 に答える
1

https://github.com/HenrikJoreteg/humanjs-sample-app/のnpmインストール中に、この正確なエラーが発生しました

私は Windows マシンを使用しているので、ファイル パスの文字数に関する Windows の奇妙な制限に問題があるのではないかと疑っていました。

これを解決するには、ベース パスをルートの 3 文字のフォルダー名に短縮します (この場合は、C:\projects\humanjs-sample-app から C:\hjs に移動します)。npm install を再実行すると、すべてが機能しました。私はその決議に満足していません。ベース パス名が長すぎることを心配する必要はありません。これは、人々が Windows マシンでノード開発を行わないことが多い理由の 1 つです。

別の解決策は、Linux または Mac で開発することです (まだ行っていない場合)。それはおそらく私の長期的な戦略です。

于 2015-07-17T07:40:26.857 に答える