Node.js 升级Nodejs规则后出现Bazel错误-错误:defs.bzl已从build_Bazel_Rules_Nodejs中删除

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

将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/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>)