13

私のプロジェクトでは、bower 経由で jquery-mobile を使用したいと考えています。

使用する前に、縮小したファイルを使用する前に実行npm installし、gruntその後内部で実行する必要があります。bower_components/jquery-mobile.js.css

これは非常に面倒で、使用するライブラリごとにこれを行う必要がある場合は、ファイルをダウンロードしてプロジェクトに追加するだけにフォールバックすると思います。

bower依存関係を介してこれらの「最終」ファイルに到達するためのよりエレガントな方法はありますか?

じぶんのbower.json

"dependencies": {
    ...     
    "jquery-mobile": "latest",
}
4

3 に答える 3

19

npm/grunt プロセスを実行する必要がある (または実行しない) という事実は、各作成者次第です。jQuery Mobile の場合、Grunt タスクを実行する必要があることに気づかずに外部ユーザーが登録した可能性があります。残念ながら、Bower は誰でもパッケージを登録できるようにしています (それは悪いことですか、良いことですか? :S)。

また、bower の依存関係をインストールし、それらの Grunt タスクも実行するための Grunt タスクが存在する場合があります。存在しない場合でも、作成するのはそれほど複雑ではありません。

とにかく、これらの最終的なコンパイル済みファイルを「急いで」いるように見えるので、数時間前に作成され、Bower に登録されたjquery-mobile-bowerがあります。

bower install jquery-mobile-bower

これが維持され、最新のものになることを願いましょう。

于 2013-07-18T16:25:56.987 に答える
7

ご承知のとおり、公式の jQuery モバイル Bower パッケージが利用可能です。次の方法でインストールできます。

bower install jquery-mobile

その GitHub エンドポイントはここにあります。

于 2013-12-24T11:41:48.710 に答える
0

私のソリューションが最適かどうかはわかりませんが、 から削除jquery-mobileし、 、 using 、およびプラグインを使用bower.jsonしてインストールおよびビルドしています。これは非公式のリポジトリであるため、使用したくないため、これを思いつきました。Gruntgrunt-contrib-cleangrunt-gitgrunt-runjquery-mobile-bower

例を次に示しGruntfile.jsます。

module.exports = function (grunt) {

    grunt.initConfig({
        clean: {
            jquerymobile: 'bower_components/jquery-mobile'
        },
        gitclone: {
            jquerymobile: {
                options: {
                    repository: 'https://github.com/jquery/jquery-mobile.git',
                    branch: 'master',
                    directory: 'bower_components/jquery-mobile'
                }
            }
        },
        run: {
            options: {
                cwd: "bower_components/jquery-mobile"
            },
            jquerymobile_npm_install: {
                cmd: "npm",
                args: [
                    'install'
                ]
            },
            jquerymobile_grunt: {
                cmd: "grunt"
            }
        }
    });

    grunt.loadNpmTasks('grunt-contrib-clean');
    grunt.loadNpmTasks('grunt-git');
    grunt.loadNpmTasks('grunt-run');

    grunt.registerTask('default', [
        'clean',
        'gitclone',
        'run'
    ]);
};

詳細については、https://github.com/jquery/jquery-mobile/issues/7554をご覧ください。

于 2015-06-27T03:22:36.310 に答える