1

イサキとバワーを併用するように結びました。bowerコンポーネントを index.html に直接注入するには、 grunt-wiredepを使用します。

ただし、問題が 1 つあります。bower.json に存在する一部の依存関係がまだ *.html に含まれていません。

bower.json

{
  "name": "***",
  "version": "***",
  "dependencies": {},
  "devDependencies": {
    "jquery": "~2.1.1",
    "angular": "1.4.x",
    "bootstrap": "~3.1.1",
    ...
  },
  "resolutions": {
    ..
  }
}

gruntfile.js

....
wiredep: {

      task: {
        src: [
          'app/index.html'
        ],
        options: {
          dependencies: true,
          devDependencies: true          
        }
      }
    }
...

index.html

...

<!-- bower:js -->
<!-- endbower -->

<!-- bower:css -->
<!-- endbower -->

...

その結果、ブートストラップ用の jquery、angular、bootsrap、および css のスクリプトを含めていません。しかし、いくつかの他のソースが含まれています。

ここのように、問題はbower.json内のメインプロパティにはありません

いくつかの調査の後、ブートストラップ 3.3.x に問題があることがわかりました

しかし、bower.js の「オーバーライド」ブロックは役に立ちません。

非常に興味深いことが 1 つあります: (同じことが bootstarp にも当てはまります)

追加後

"jquery": {
      "main": "D:/REPO/XX/current/bower_components/jquery/dist/jquery.js"
    }

ブロックをオーバーライドするために、 wiredepには index.html に次のものが含まれています。

<script src="../bower_components/jquery/D:/REPO/XX/current/bower_components/jquery/dist/jquery.js"></script>

しかし、私が書いたとき、"main": "dist/jquery.js"それは単に無視されます

4

1 に答える 1

2

プロジェクトの構造に問題があるようです。パラメータを使用しcwdます。config で必要な依存関係を追加するために、wiredep を正常に構成しました。

wiredep: {
    task: {
        src: [
            '<%= cfg.webapp_dir %>/index.html'
        ],
        cwd: '.',
        overrides': {
            'bootstrap': {
                'main': ['less/bootstrap.less', 'dist/css/bootstrap.min.css', 'dist/js/bootstrap.min.js']
            }
        },
        fileTypes: {
            html: {
                replace: {
                    js: '<script src="/{{filePath}}"></script>',
                    css: '<link rel="stylesheet" href="/{{filePath}}" />'
                }
            }
        }
    }
}

これには、問題なく動作するブートストラップも含まれますoverrides:) 私の場合、bower_dependenciesフォルダーは同じディレクトリにindex.htmlあります。

于 2016-02-02T14:57:53.940 に答える