1

yo angularangular アプリを作成するための基本的な足場をセットアップします。したがって、index.html次のようなコードがあります。

<!-- build:css(.) styles/vendor.css -->
<!-- bower:css -->
<link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.css" />
<link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap-theme.css" />
<!-- endbower -->
<!-- endbuild -->    

これらの行を削除し、ファイルの正しい場所を挿入するタスクを探しています。例:

<link rel="stylesheet" href="css/bootstrap.css" />
<link rel="stylesheet" href="css/bootstrap-theme.css" />

または、これに対処する別の方法はありますか...たとえば、監視タスクにさまざまなバージョンの ; を作成させるなどindex.htmlですindex.html.fooTarget。そのターゲットの正しいパスで更新されます。そして、単調なタスクになると、後者のファイルが適切にコピーされます。

これに対処するために何ができますか?

4

1 に答える 1

0

CSSファイルもbowerの依存関係であるため、パスをそのままにしておく必要があるかもしれません。依存関係を同じ相対パスのディレクトリにコピーしますか?

しかし、もしそうなら、これは単調なタスクを修正するのに役立つと思います.

に(少なくとも)次のものが含まれていると仮定しますpackage.json

{
  "name": "app",
  "version": "0.0.1",
  "dependencies": {},
  "devDependencies": {
    "grunt": "~0.4.1",
    "grunt-contrib-copy": "~0.4.1",
    "grunt-text-replace": "0.3.11"
  }
}

次に、最小限のコピーと置換タスクは次のようになります(必要に応じて、 grunt-contrib-copyを単独でGruntfile.js使用してコピーと置換を組み合わせることができます)。

'use strict';

module.exports = function(grunt) {
    grunt.loadNpmTasks('grunt-contrib-copy');
    grunt.loadNpmTasks('grunt-text-replace');

    grunt.initConfig({
        src: 'src',
        dest: 'dest',
        copy: {
            dev: {
                expand: true,
                cwd: '<%= src %>',
                src: '{,*/}*.html',
                dest: '<%= dest %>/'                
            }
        },
        replace: {
            dev: {
                src: ['<%= dest %>/{,*/}*.html'],
                overwrite: true,
                replacements: [{
                    from: 'bower_components/bootstrap/dist/css',
                    to: 'css'
                }]
            }
        }
    });

    grunt.registerTask('prepare', function(val) {
        var target = val || 'dev';
        grunt.task.run([
            'copy:' + target,
            'replace:' + target
        ]);
    });
};

prepareここで、desired でタスクを実行すると、すべての HTML ファイルがディレクトリtargetからコピーされ、必要な CSS パスが置き換えられ、元のファイルはそのまま残ります。srcdest

<link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.css" /> 

--> will be replaced as -->

<link rel="stylesheet" href="css/bootstrap.css" />
于 2015-01-20T22:25:06.330 に答える