Как получить доступ к папке node_modules после запуска yarn_install (или npm_install) в rules_nodejs bazel?

Я относительно новичок в Базеле, но это заняло больше времени, чем я думал. я делаю yarn_install в моем рабочем пространстве, и я просто пытаюсь сослаться на установленный node_modules так что я могу поместить их в свой новый контейнер докеров.

Рабочая среда

      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'

1 ответ

Я не уверен, что полностью понимаю, почему я могу получить доступ к отдельным пакетам (т.е. @npm//express), но не node_modules (т.е. @npm//node_modules).

но после того, как я наткнулся, я обнаружил, что если я просто использую структуру @npm//:node_modules, то, наконец, он работает.

Другие вопросы по тегам