bazel与webpack的集成
我正试图将webpack引入bazel正在构建的monorepo 我有点像bazel与webpack的集成,webpack,bazel,Webpack,Bazel,我正试图将webpack引入bazel正在构建的monorepo 我有点像 source/ -moduleA/ -moduleB/ --package.json --static/ ---image.png --source/ ---foo.ts ---bar.js ---baz.jsx 我已经设置了我的webpack.config.js,这样当我运行webpack时,我会得到如下结果: dist/ -generated.html -bundled.js -copied/ --css/ --i
source/
-moduleA/
-moduleB/
--package.json
--static/
---image.png
--source/
---foo.ts
---bar.js
---baz.jsx
我已经设置了我的webpack.config.js
,这样当我运行webpack
时,我会得到如下结果:
dist/
-generated.html
-bundled.js
-copied/
--css/
--img/
据我所知,这是一款网络应用。如果我提供/dist
服务,我的浏览器将加载生成的.html
,然后加载其他文件
Bazel不喜欢我的/dist
目录,但我无法理解我遇到的所有错误。我正试着做这样的事情
genrule(
name = "webpack_stuff",
srcs = [
":deps"
],
cmd = " && ".join([
"cd source/core/viewer",
"node node_modules/webpack/bin/webpack.js --config webpack.prod.js --output-path $@",
]),
outs = ["dist"],
visibility = [
"//visibility:public",
],
)
当我调整时,我不完全确定我在调整什么,但有时我会抱怨“dist”是一个目录,有时它会抱怨使用只读文件系统
我的期望是,如果我能够在没有bazel的情况下运行npm run build
或webpack
,那么我就能够使用bazel运行它。这看起来应该是bazel的中间步骤,因为在我的外行看来,它应该做一些类似于部署的事情,结果来自webpack。我甚至可以在/dist
中压缩所有结果,但仍然不确定如何让bazel接受它
我是否可以告诉bazel“将文件webpacked.zip
,然后在接下来的步骤中使用它”
到目前为止,我的研究几乎没有结果表明这是非常复杂或不可能的,而且很可能不是这些工具应该如何使用。欢迎任何帮助
genrule
不知道如何处理其输出中的目录。有几种方法:
将输出目录中的所有内容压缩为genrule
中的最后一步,并在outs
中声明该压缩文件。缺点是处理这些文件的每一步都必须进行压缩和解压(跳过压缩可能会加快速度)
编写Starlark规则,其中有用于处理目录输出的API。有关如何执行此操作的更多信息,请参见此问题:
显示为支持的网页包:
因此,也许可以尝试使用nodejs规则进行调查