0

私は Bazel に比較的慣れていませんが、必要以上に時間がかかりました。私はyarn_install自分のワークスペースでやっています。インストールされているものを参照しnode_modulesて、新しいdockerコンテナーに入れることができるようにしています。

ワークスペース

yarn_install(
    name = "npm",
    package_json = "//:package.json",
    yarn_lock = "//:yarn.lock",
)

BUILD.bazel

load("@io_bazel_rules_docker//nodejs:image.bzl", "nodejs_image")

nodejs_image(
    name = "webapi_image",
    # gets all the files in my directory
    data = glob(
        [
            "**/*",
        ],
        # references the node modules, but doesn't work :(
    ) + ["@npm//node_modules"],
    entry_point = "//:app.js",
)

特定のパッケージ (つまり@npm//express) を取得できましたが、node_modules にアクセスしようとすると、

no such package '@npm//node_modules': Package is considered deleted due to --deleted_packages and referenced by '//:webapi_image'

4

1 に答える 1

1

@npm//express個々のパッケージ (つまり ) にアクセスできるのに node_modules (つまり)にアクセスできない理由を完全に理解しているかどうかはわかりません@npm//node_modules

@npm//:node_modulesしかし、ぶらぶらした後、構造体を使用するだけで最終的に機能することがわかりました。

于 2021-10-07T14:58:01.357 に答える