问题标签 [bazel-rules-nodejs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
155 浏览

angular - Angular bazel ts_devserver 添加 polyfill

我收到以下错误

polyfills.ts 是一个 ts_library()

我现在不知道为什么在应用程序启动之前如何初始化......在测试中,我通过添加//src:polyfills到 runtime_deps 并在 srcs 中本地化 init 来做到这一点。

有任何想法吗?

0 投票
1 回答
634 浏览

javascript - 如何使用 bazel/webpack 设置绝对导入?

我想从我的回购的一部分在另一部分导入一个打字稿模块,而在我的导入中没有一堆“../..”以返回我的 bazel 工作区的根文件夹。如何为 webpack 设置绝对导入(相对于我的工作区)?我需要在 webpack.config.js 中设置一些东西吗?如果是这样,是什么?

用于说明以下问题的最小设置:

文件夹结构

工作空间

* **模块A.ts ***

文件夹 1/构建

0 投票
1 回答
126 浏览

typescript - 检查 package.json 依赖项的数组是否在 typeScript 中按字母数字顺序排序

我想检查 package.json 依赖项和 devDependencies 数组是否在 typeScript 中按字母数字顺序排序。如果它没有排序,那么它应该返回不合适的 dep 名称。

我想在 typesScript 中建立一个 bazel 规则检查来检查

返回错误的说法 dep2, devdep1 违反。

0 投票
1 回答
8959 浏览

jestjs - 当我使用 Bazel Test 时,Nest 无法解析 RootTestModule 上下文中的依赖项

我需要在挡板中运行我的测试。我该如何解决这个神秘的问题?

我有一个nestjs 项目包含多个应用程序和库。当我运行测试yarn jest --config ./jest.config.json libs/lib1时,它运行良好。但是,当我使用 bezel 运行时,bazel test //libs/lib1/...它会给我一个错误“Nest 无法解析依赖项......请确保索引处的参数依赖项......在 RootTestModule 上下文中可用。”。

回购协议

我发现 jest.config.json 的映射顺序很重要。这个效果很好(显示测试+覆盖),但是依赖性问题

这个有效(仅显示没有实际测试结果和覆盖范围的传递消息!?)

笑话配置

巴泽尔配置

错误日志

0 投票
1 回答
756 浏览

bazel - 将目录复制到 Bazel 中的新目录

基本上我想要的只是cp -r src/ dist/,但由于某种原因,我根本无法让它工作。

目前我正在尝试:

我已经浏览了至少 4 页的 google 和文档,但似乎除非我创建一个 genrule 并在规则中手动指定所有 100 个文件,否则它不会起作用?

0 投票
1 回答
440 浏览

webpack - 我应该如何调用 webpack 来捆绑 bazel 的 ts_library 输出

我正在尝试从 Typescript 源构建一个 React JS 应用程序,使用 Bazel 构建并使用 Webpack 作为捆绑器。rules_nodejs 包括examples/react_webpack,它展示了如何使用ts_project,但我需要使用它来构建它,ts_library因为ts_project生成的 TS 文件(在我的例子中是 protobuf TS 文件)似乎效果不佳。

我如何才能更好ts_library地使用 Webpack(反之亦然)?

是我尝试调整 examples/react_webpack 以使用ts_library而不是ts_project. 它使用 Webpack 4,因为这就是示例所使用的,我想尽量减少更改。为了完整起见,我也有这个提交,它重现了 Webpack 5 的更改,尽管这是我第一次使用 Webpack 5,所以我可能会在迁移中引入其他问题。

当我bazel run server使用 Webpack 4 提交运行,然后在 Chrome 中加载结果页面时,我在控制台上收到此错误:

Webpack 5 发出了类似的错误,但信息量稍大一些(?):

在这两种情况下,我都点击了 webpack require for ./bazel-out/k8-fastbuild/bin/index.js,这是我指定的入口点(不确定这是否是指定为入口点的正确路径)。这导致我进入index.jsAMD(?) 模块,然后需要./bazel-out/k8-fastbuild/bin sync recursive. 该要求似乎直接导致错误:

我注意到的另一件事:

rules_nodejs 示例/react_webpack 示例,使用ts_project,编译index.tsx如下:

我认为这是一个脚本?

ts_library像这样编译它,我认为这是一个模块?

这种差异是问题的根源吗?我是否应该试图弄清楚为什么/如何ts_project使用更简单的形式,然后说服ts_library做同样的事情?还是告诉 Webpack 按原样捆绑ts_library输出更好?如果是后者,怎么做?

编辑:ts_library规则似乎使用了自己设计的 tsconfig 设置compilerOptions.moduleumd. ts_project在版本中设置相同的选项会导致index.js上面显示的所有出厂设置增加。

0 投票
1 回答
413 浏览

angular - 不能在模块外使用 import 语句(Bazel + Concatjs + NgRx)

问题

我正在使用Bazel来构建我的 Angular 应用程序。

NgRx版本 9一切正常。

但是在将 NgRx 升级到 v10 或更高版本后,Angular 开发服务器会出现以下错误:

最小复制_

要重现此问题,请按照下列步骤操作:

  1. git clone https://github.com/flolu/bazel-concatjs-ngrx-issue
  2. cd bazel-concatjs-ngrx-issue
  3. yarn install
  4. yarn start(打开 http://localhost:4200,工作正常)
  5. yarn upgrade-ngrx(将 NgRx 升级到 v11)
  6. yarn start(打开http://localhost:4200,浏览器控制台报错)

请注意,生产服务器yarn prod在 NgRx 的两个版本上都可以正常工作。

因此,这是开发服务器的问题(在这种情况下:@bazel/concatjs

0 投票
1 回答
178 浏览

bazel - 如何在规则失败的情况下使 Bazel 构建失败?

我在我的应用程序中使用 NodeJS 中的 Bazel 规则。目的是简单地对一组文件进行 lint,如果 linting 失败,则构建失败。我目前遇到的是,尽管出现了 lint 错误,但构建还是成功的。

这是我BUILD文件的一部分:

我首先加载提示库,然后为我想要 lint 的所有 HTML 文件定义一个文件组。之后,我将规则与它的数据和参数一起使用。

要运行构建,我通过 npm 脚本使用默认选项:bazel build //...

0 投票
1 回答
189 浏览

bazel - Bazel:使用另一个链接的 JS 依赖项(纱线工作区)构建 js_library

我有一个项目,其中包含几个 JS 包并使用 Yarn 工作区进行组织:

FOO包取决于BAR包,它定义在FOO/package.json

workspaces/bar/BUILD.bazel看起来像这样

和这里workspaces/foo/BUILD.bazel

文件WORKSPACE包括:

通过所有这些设置,我运行bazel build //workspaces/foo:foo但它失败了。我需要配置linksgenerate_local_modules_build_files属性yarn_install吗?或者让这个链接的包一起工作需要什么改变?

0 投票
1 回答
142 浏览

bazel - 位于`src`之外的Bazel映射目录到`build`

我不知道 Bazel 或它是如何工作的,但我必须解决这个问题,最终归结为 bazel 没有将某个目录复制到构建中。

我重构了代码,因此首先尝试从目录中读取某个键 (jwk) private-keys。运行时总是找不到文件。我认为 bazel 没有将private-keys目录(srcbuild.

有一个映射对象可以复制里面的目录,src我尝试../private-keys在那里使用但没有用。

以下是BUILD.bazel外观