我正在尝试让规则泊坞窗nodejs_image
使用 bazel 运行。
我的命令是
bazel run :image.binary
这是我的规则:
load("@npm//@bazel/typescript:index.bzl", "ts_project")
load("@io_bazel_rules_docker//nodejs:image.bzl", "nodejs_image")
ts_project(
name = "typescript_build",
srcs = glob([
"src/**/*",
]),
allow_js = True,
out_dir = "build",
deps = ["@npm//:node_modules"],
)
nodejs_image(
name = "image",
data = [
":package.json",
":typescript_build",
"@npm//:node_modules",
],
entry_point = "build/app.js",
)
基本上,我需要该package.json
文件,因为它包含 Node 执行时的一些重要配置信息。如果我打电话bazel build :image
然后抓取/运行该图像,一切正常。但是,如果我调用bazel run :image
它,它基本上会起作用,只是它找不到package.json
.
当我检查bazel-bin/
文件夹时,我注意到package.json
不包括在内,但内置的 typescript 和 node_modules 是。我猜是因为我没有在 package.json 上运行任何先前的规则,它没有被添加到 bin 中,但我真的不知道如何解决这个问题。