Я пытаюсь внести веб-пакет в монорепо, созданное bazel.
У меня есть что-то вроде
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
, мой браузер загрузит generated.html
, который, в свою очередь, загрузит другие файлы.
Bazel не нравится мой /dist
dir, но я не могу понять все ошибки, с которыми я столкнулся. Я пытаюсь запустить что-то вроде этого
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" - это каталог, в других случаях он жалуется на работу с файловой системой только для чтения.
Я ожидал, что если я смогу запустить npm run build
или webpack
без Базеля, то я смогу запустить его с Базелем. Похоже, что это должен быть некоторый промежуточный шаг для bazel, поскольку он должен сделать что-то похожее на развертывание в моем сознании неспециалиста, с результатами из веб-пакета. Я даже могу сжать все результаты в /dist
, но все еще не знаю, как заставить Базеля это принять.
Могу ли я как-нибудь сказать Базелу "сделать файл webpacked.zip
и затем использовать его в своих следующих шагах"?
Мои исследования пока дали мало результатов, указывающих, что это либо очень сложно, либо невозможно и, скорее всего, не так, как предполагается использовать эти инструменты. Любая помощь будет приветствоваться.