问题标签 [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.
angular - Angular bazel ts_devserver 添加 polyfill
我收到以下错误
polyfills.ts 是一个 ts_library()
我现在不知道为什么在应用程序启动之前如何初始化......在测试中,我通过添加//src:polyfills
到 runtime_deps 并在 srcs 中本地化 init 来做到这一点。
有任何想法吗?
javascript - 如何使用 bazel/webpack 设置绝对导入?
我想从我的回购的一部分在另一部分导入一个打字稿模块,而在我的导入中没有一堆“../..”以返回我的 bazel 工作区的根文件夹。如何为 webpack 设置绝对导入(相对于我的工作区)?我需要在 webpack.config.js 中设置一些东西吗?如果是这样,是什么?
用于说明以下问题的最小设置:
文件夹结构
工作空间
* **模块A.ts ***
文件夹 1/构建
typescript - 检查 package.json 依赖项的数组是否在 typeScript 中按字母数字顺序排序
我想检查 package.json 依赖项和 devDependencies 数组是否在 typeScript 中按字母数字顺序排序。如果它没有排序,那么它应该返回不合适的 dep 名称。
我想在 typesScript 中建立一个 bazel 规则检查来检查
返回错误的说法 dep2, devdep1 违反。
jestjs - 当我使用 Bazel Test 时,Nest 无法解析 RootTestModule 上下文中的依赖项
我需要在挡板中运行我的测试。我该如何解决这个神秘的问题?
我有一个nestjs 项目包含多个应用程序和库。当我运行测试yarn jest --config ./jest.config.json libs/lib1
时,它运行良好。但是,当我使用 bezel 运行时,bazel test //libs/lib1/...
它会给我一个错误“Nest 无法解析依赖项......请确保索引处的参数依赖项......在 RootTestModule 上下文中可用。”。
回购协议
我发现 jest.config.json 的映射顺序很重要。这个效果很好(显示测试+覆盖),但是依赖性问题
这个有效(仅显示没有实际测试结果和覆盖范围的传递消息!?)
笑话配置
巴泽尔配置
错误日志
bazel - 将目录复制到 Bazel 中的新目录
基本上我想要的只是cp -r src/ dist/
,但由于某种原因,我根本无法让它工作。
目前我正在尝试:
我已经浏览了至少 4 页的 google 和文档,但似乎除非我创建一个 genrule 并在规则中手动指定所有 100 个文件,否则它不会起作用?
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.js
AMD(?) 模块,然后需要./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.module
为umd
. ts_project
在版本中设置相同的选项会导致index.js
上面显示的所有出厂设置增加。
angular - 不能在模块外使用 import 语句(Bazel + Concatjs + NgRx)
问题
我正在使用Bazel来构建我的 Angular 应用程序。
NgRx版本 9一切正常。
但是在将 NgRx 升级到 v10 或更高版本后,Angular 开发服务器会出现以下错误:
最小复制_
要重现此问题,请按照下列步骤操作:
git clone https://github.com/flolu/bazel-concatjs-ngrx-issue
cd bazel-concatjs-ngrx-issue
yarn install
yarn start
(打开 http://localhost:4200,工作正常)yarn upgrade-ngrx
(将 NgRx 升级到 v11)yarn start
(打开http://localhost:4200,浏览器控制台报错)
请注意,生产服务器yarn prod
在 NgRx 的两个版本上都可以正常工作。
因此,这是开发服务器的问题(在这种情况下:@bazel/concatjs)
bazel - 如何在规则失败的情况下使 Bazel 构建失败?
我在我的应用程序中使用 NodeJS 中的 Bazel 规则。目的是简单地对一组文件进行 lint,如果 linting 失败,则构建失败。我目前遇到的是,尽管出现了 lint 错误,但构建还是成功的。
这是我BUILD
文件的一部分:
我首先加载提示库,然后为我想要 lint 的所有 HTML 文件定义一个文件组。之后,我将规则与它的数据和参数一起使用。
要运行构建,我通过 npm 脚本使用默认选项:bazel build //...
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
但它失败了。我需要配置links
或generate_local_modules_build_files
属性yarn_install
吗?或者让这个链接的包一起工作需要什么改变?
bazel - 位于`src`之外的Bazel映射目录到`build`
我不知道 Bazel 或它是如何工作的,但我必须解决这个问题,最终归结为 bazel 没有将某个目录复制到构建中。
我重构了代码,因此首先尝试从目录中读取某个键 (jwk) private-keys
。运行时总是找不到文件。我认为 bazel 没有将private-keys
目录(src
与build
.
有一个映射对象可以复制里面的目录,src
我尝试../private-keys
在那里使用但没有用。
以下是BUILD.bazel
外观