5

私はpackage.jsonfile を使用して nodejs の要件を とともに定義していますがnpm update、もちろん正常に動作しています。

ノードを使用して他のサードパーティのライブラリを管理 (簡単な方法で更新) するにはどうすればよいですか? 例えば:

https://github.com/documentcloud/backbone.git
https://github.com/twitter/bootstrap.git

vendorフォルダ内。

4

3 に答える 3

5

まとめ: http://twitter.github.com/bower/を使いたいと思います

詳細: 質問を理解するには、次の 2 つの方法があります。

  • npm非コードを管理/更新する方法は?
  • クライアント側の JavaScript アセットを管理/更新する方法は?

質問は前者のように表現されていますが、含まれている例から、後者について何を聞きたいと思いますか。

サーバー側のコードの場合は、すべてのコードがnpmスタイルpackage.jsonのマニフェストで出荷されると主張してください。コードの作成者が応答しない場合は、フォークしてマニフェストを追加します。言い訳はありません。

クライアント側コードの場合、状況は異なります。パッケージ管理には確立された標準はありませんが、広く認識されている問題であり、非常に活発な開発分野です。最近、いくつかの挑戦者が台頭し、支配的な地位を獲得しようとしています: BPMジャムまたはエンダー。どちらを選択するかはあなた次第です。それらはここによく要約されています: Web アセットのパッケージ マネージャー

ただし、上記のすべては、やや野心的な問題に対処しています。これらのモジュールのブラウザーへのトランスポートを整理しようとしています (遅延読み込み、require-js スタイル、依存関係の解決、連結/縮小などを介して)。使いにくい。

この分野への新規参入者は、TwitterのBowerです。フォルダー内のダウンロード/更新のライフサイクルのみに焦点を当て、ブラウザーの配信は無視しますvendor私はそのアプローチが好きです。あなたはそれをチェックアウトする必要があります。

于 2012-09-11T18:17:57.127 に答える
2

あなたはgitサブモジュールに行くことができます:

http://git-scm.com/book/en/Git-Tools-Submodules

GitHub で他の人のリポジトリを Git サブモジュールとして使用する

[更新 1 ] リポジトリのルートでこれを行います。

git submodule add git://github.com/documentcloud/backbone.git vendors/backbone
git submodule add git://github.com/twitter/bootstrap.git vendors/bootstrap

詳細については、これを確認してください: http://skyl.org/log/post/skyl/2009/11/nested-git-repositories-with-github-using-submodule-in-three-minutes/

于 2012-09-11T11:04:37.417 に答える
1

これは nodejs のやり方ではないかもしれませんし、一部の純粋主義者は文句を言うかもしれませんが、Composerはあなたが望むことをします。Composer は PHP プロジェクトで使用されますが、nodejs プロジェクトのサードパーティの非 npmリポジトリの管理にも Composer を使用できない理由はありません。サード パーティのライブラリに package.json を含めることが望ましいのは明らかですが、そうはいきません。現在のnodejsアプリでこれを試してみましたが、完璧に機能しました。

長所:

  • 1 つの json ファイルは、package.json ファイルを持たないカスタムの外部依存関係を指定します
  • プロジェクト フォルダー内のパッケージの保存場所をカスタマイズする
  • プライベート リポジトリと、もともと nodejs での使用を意図していないリポジトリで動作します

短所:

  • php cli が必要です
  • 依存関係を更新するための追加の手順
  • 依存関係用の追加の json ファイル

ここでそれを行う方法(cliからphpを実行できる必要があります):

1. Composer をダウンロードします (ルート nodejs プロジェクト フォルダーに直接)

curl -s https://getcomposer.org/composer.phar > composer.phar

2. composer.json ファイルを作成します(プロジェクトのルートに)

{
    "repositories": [
        {
            "type": "package",
            "package": {
                "name": "twitter/bootstrap",
                "version": "2.0.0",
                "dist": {
                    "url": "https://github.com/twitter/bootstrap/zipball/master",
                    "type": "zip"
                },
                "source": {
                    "url": "https://github.com/twitter/bootstrap.git",
                    "type": "git",
                    "reference": "master"
                }
            }
        }
    ],
    "require": {
        "twitter/bootstrap": "2.0.0"
    }
}

3. Composer の更新を実行する

php composer.phar update 

vendorこれにより、要求どおりにパッケージがフォルダーにダウンロードされます。

├── vendor
│   ├── ...
│   ├── composer
│   │   └── installed.json
│   └── twitter
│       └── bootstrap
│           ├── LICENSE
│           ├── Makefile
│           ├── README.md
│           ├── docs
│           │   ├── assets
│           │   └── ...
│           ├── img
│           │   ├── glyphicons-halflings-white.png
│           │   └── glyphicons-halflings.png
│           ├── js
│           │   ├── bootstrap-affix.js
│           │   └── ...
│           ├── less
│           │   ├── accordion.less
│           │   └── ...
│           └── ...
于 2012-09-14T17:47:44.103 に答える