Node.js 升级Nodejs规则后出现Bazel错误-错误:defs.bzl已从build_Bazel_Rules_Nodejs中删除
将build_bazel_rules_nodejs从0.42.2升级到1.0.1后,我遇到以下错误:Node.js 升级Nodejs规则后出现Bazel错误-错误:defs.bzl已从build_Bazel_Rules_Nodejs中删除,node.js,bazel,Node.js,Bazel,将build_bazel_rules_nodejs从0.42.2升级到1.0.1后,我遇到以下错误: ERROR: /home/flolu/.cache/bazel/_bazel_flolu/698f7adad10ea020bcdb85216703ce08/external/build_bazel_rules_nodejs/defs.bzl:19:5: Traceback (most recent call last): File "/home/flolu/Desktop/mi
ERROR: /home/flolu/.cache/bazel/_bazel_flolu/698f7adad10ea020bcdb85216703ce08/external/build_bazel_rules_nodejs/defs.bzl:19:5: Traceback (most recent call
last):
File "/home/flolu/Desktop/minimal-bazel-monorepo/services/server/src/BUILD", line 76
nodejs_image(name = "server", <2 more arguments>)
File "/home/flolu/.cache/bazel/_bazel_flolu/698f7adad10ea020bcdb85216703ce08/external/io_bazel_rules_docker/nodejs/image.bzl", line 112, in nodejs_image
nodejs_binary(name = binary, <2 more arguments>)
File "/home/flolu/.cache/bazel/_bazel_flolu/698f7adad10ea020bcdb85216703ce08/external/build_bazel_rules_nodejs/defs.bzl", line 19, in nodejs_binary
fail(<1 more arguments>)
ERROR: defs.bzl has been removed from build_bazel_rules_nodejs
Please update your load statements to use index.bzl instead.
See https://github.com/bazelbuild/rules_nodejs/wiki#migrating-off-build_bazel_rules_nodejsdefsbzl for help.
ERROR: error loading package 'services/server/src': Package 'services/server/src' contains errors
INFO: Elapsed time: 0.119s
INFO: 0 processes.
FAILED: Build did NOT complete successfully (1 packages loaded)
FAILED: Build did NOT complete successfully (1 packages loaded)
但是没有defs.bzl。所以我被这个错误弄糊涂了
所以在细节上我已经从
http_archive(
name = "build_bazel_rules_nodejs",
sha256 = "16fc00ab0d1e538e88f084272316c0693a2e9007d64f45529b82f6230aedb073",
urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/0.42.2/rules_nodejs-0.42.2.tar.gz"],
)
到
您可以通过克隆此repo:并运行
bazel test //services/server/src:test
这些版本的build_bazel_rules_nodejs之间有一些突破性的变化。即导入路径:
load("@build_bazel_rules_nodejs//:defs..bzl", <whatever>)
需要变成这样
load("@build_bazel_rules_nodejs//:index.bzl", <whatever>)
您还需要将io_bazel_rules_docker至少更新到v0.13.0。从发行说明来看,它的版本与节点中的1.0.1兼容 如果这个项目相对较新,我会尝试将所有LIB更新到最新的稳定版本。我不知道自动更新的方法。我只需进入每个库的发布页面,选择最新版本。您在工作区中拥有所有URL
load("@build_bazel_rules_nodejs//:defs..bzl", <whatever>)
load("@build_bazel_rules_nodejs//:index.bzl", <whatever>)