万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

  • ・資産運用おすすめ
    10万円は1000円くらい利益
    資産運用ブログ アセマネ
    • ・寄付お願いします
      YENTEN:YYzNPzdsZWqr5THWAdMrKDj7GT8ietDc2W
      BitZenny:ZfpUbVya8MWQkjjGJMjA7P9pPkqaLnwPWH
      c0ban:8KG95GXdEquNpPW8xJAJf7nn5kbimQ5wj1
      Skycoin:KMqcn7x8REwwzMHPi9fV9fbNwdofYAWKRo

    深い階層のpubspec.yamlの書き方

    GitHub - flutter/packages: A collection of useful packages maintained by the Flutter team

    ↑このFlutterの公式プラグインはpackageに詰まりまくっていて不便・・・。

    Forkしていじりたいが、

    https://github.com/flutter/packagesは色々詰まってるのだ。

    欲しいのは、webview_flutterなので、 階層が深いのでどうするんだ?? やはり他にも困ってる人はいた。

    https://stackoverflow.com/questions/24491065/dart-package-dependency-to-subdirectory-of-git-repo#:~:text=Several%20years%20on%2C%20support%20for%20this%20has%20been%20added%3A

    pathを使えばいいようだ。

    dependencies:
      protobuf:
        git:
          url: git://github.com/dart-lang/protobuf.git
          path: protobuf

    しかし、この例は分かりづらいな・・・。 どこからの相対パスなんだ?

    path: webview_flutterはとりあえずダメだった。

    Could not find a file named "webview_flutter/pubspec.yaml" in https://github.com/shinriyo/packages.git みたいなエラーが出る。

    実際のパスまでの経緯をGitHubで見て、

    なので path: packages/packages/webview_flutter/webview_flutter って書いたがダメ・・・。

    packageswebview_flutter が冗長かな?

    path: packages/webview_flutterはだめ。

    で、

    これが最終解!!

      webview_flutter:
        git:
          url: https://github.com/shinriyo/packages.git
          path: packages/webview_flutter/webview_flutter
          ref: main

    shinriyo部分は私のIDなんで適宜書き換えてください。

    実際のGitHubのパス(URLじゃなくてさっきの画像)から、一番左のを消す感じか?

    しかし、注意しないといけないのが、webview_flutter_android をいじる時。 webview_flutter_androidwebview_flutter/webview_flutter にあるpubspec.yamlによって参照されている。

    つまりどんなに webview_flutter_android 内のJavaファイルとかいじってても、結局公式のパッケージからダウンロードされてしまう・・。

    つまり、それを防ぐには、 webview_flutter/webview_flutterの中にあるこのpubspec.yamlファイルをさらに webview_flutter_androidも自身のGitHubに参照させてやる必要があった。

    dependencies:
      flutter:
        sdk: flutter
      # webview_flutter_android: ^3.0.0 # これは公式のパッケージの指定になるのでコメントアウト
      # こっちを指定する
      webview_flutter_android:
        git:
          url: https://github.com/shinriyo/packages.git
          path: packages/webview_flutter/webview_flutter_android
          ref: main
      webview_flutter_platform_interface: ^2.0.0