Releases: aspect-build/rules_js
v3.0.0-alpha.4
Many companies are successfully building with rules_js.
If you're getting value from the project, please let us know!
Just comment on our Adoption Discussion.
Using Bzlmod:
Add to your MODULE.bazel file:
bazel_dep(name = "aspect_rules_js", version = "3.0.0-alpha.4")
####### Node.js version #########
# By default you get the node version from DEFAULT_NODE_VERSION in @rules_nodejs//nodejs:repositories.bzl
# Optionally you can pin a different node version:
bazel_dep(name = "rules_nodejs", version = "6.6.0")
node = use_extension("@rules_nodejs//nodejs:extensions.bzl", "node", dev_dependency = True)
node.toolchain(node_version = "18.14.2")
#################################
npm = use_extension("@aspect_rules_js//npm:extensions.bzl", "npm", dev_dependency = True)
npm.npm_translate_lock(
name = "npm",
pnpm_lock = "//:pnpm-lock.yaml",
verify_node_modules_ignored = "//:.bazelignore",
)
use_repo(npm, "npm")
pnpm = use_extension("@aspect_rules_js//npm:extensions.bzl", "pnpm")
# Allows developers to use the matching pnpm version, for example:
# bazel run -- @pnpm --dir /home/runner/work/rules_js/rules_js install
use_repo(pnpm, "pnpm")What's Changed
- docs: remove comment referencing unsupported nodejs version by @jbedard in #2589
- refactor: remove pnpm-workspace.yaml from label_store by @dzbarsky in #2500
- refactor: remove use of label-store for package patch files by @dzbarsky in #2542
- refactor: remove support for undeclared .npmrc and pnpm-workspace files by @jbedard in #2632
- refactor: remove npmrc from label-store by @jbedard in #2631
- refactor: remove pnpm import when no pnpm_lock present by @jbedard in #2634
- refactor: remove label_store npm_package_lock,yarn_lock by @jbedard in #2633
- refactor: remove label_store, utils.exists by @jbedard in #2635
- fix: hash long package store and repository names by @jbedard in #2629
- refactor: remove deprecated npm_import(dev) attribute by @jbedard in #2637
- refactor: cleanup exclude_package_contents implementation, docs by @jbedard in #2638
- refactor: remove legacy bazel workaround by @jbedard in #2641
- refactor: reduce conversion of paths,labels to str by @jbedard in #2639
- docs: remove references to WORKSPACE and non-bzlmod APIs by @jbedard in #2644
- refactor: change repo rules to use coreutils by @jbedard in #2643
- refactor: do not duplicate js_library result JsInfo in runfiles by @jbedard in #2615
- refactor: move npm/private/lifecycle to pnpm workspace, bazel build by @jbedard in #2646
- refactor: upgrade @pnpm/lifecycle package by @jbedard in #2647
- chore: enable bazel9 rc tests by @jbedard in #2648
- refactor: remove support and references to bazel-lib <3.x, bazel<7.6 by @jbedard in #2645
Full Changelog: v3.0.0-alpha.3...v3.0.0-alpha.4
v2.9.1
Many companies are successfully building with rules_js.
If you're getting value from the project, please let us know!
Just comment on our Adoption Discussion.
Using Bzlmod with Bazel 6:
Add to your MODULE.bazel file:
bazel_dep(name = "aspect_rules_js", version = "2.9.1")
####### Node.js version #########
# By default you get the node version from DEFAULT_NODE_VERSION in @rules_nodejs//nodejs:repositories.bzl
# Optionally you can pin a different node version:
bazel_dep(name = "rules_nodejs", version = "6.3.0")
node = use_extension("@rules_nodejs//nodejs:extensions.bzl", "node", dev_dependency = True)
node.toolchain(node_version = "18.14.2")
#################################
npm = use_extension("@aspect_rules_js//npm:extensions.bzl", "npm", dev_dependency = True)
npm.npm_translate_lock(
name = "npm",
pnpm_lock = "//:pnpm-lock.yaml",
verify_node_modules_ignored = "//:.bazelignore",
)
use_repo(npm, "npm")
pnpm = use_extension("@aspect_rules_js//npm:extensions.bzl", "pnpm")
# Allows developers to use the matching pnpm version, for example:
# bazel run -- @pnpm --dir /home/runner/work/rules_js/rules_js install
use_repo(pnpm, "pnpm")Using WORKSPACE
Paste this snippet into your WORKSPACE file:
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "aspect_rules_js",
sha256 = "b87afa2205b6fa4540e01d2c47b02a92ed67e24e24f738d46c4c8099836a769a",
strip_prefix = "rules_js-2.9.1",
url = "https://github.com/aspect-build/rules_js/releases/download/v2.9.1/rules_js-v2.9.1.tar.gz",
)
load("@aspect_rules_js//js:repositories.bzl", "rules_js_dependencies")
rules_js_dependencies()
load("@aspect_rules_js//js:toolchains.bzl", "DEFAULT_NODE_VERSION", "rules_js_register_toolchains")
rules_js_register_toolchains(node_version = DEFAULT_NODE_VERSION)
load("@aspect_rules_js//npm:repositories.bzl", "npm_translate_lock")
npm_translate_lock(
name = "npm",
npmrc = "//:.npmrc",
pnpm_lock = "//:pnpm-lock.yaml",
verify_node_modules_ignored = "//:.bazelignore",
)
load("@npm//:repositories.bzl", "npm_repositories")
npm_repositories()What's Changed
- chore: update Next.js version to 15.2.6 by @scottshuffler in #2591
- Fix fetching npm packages from git repositories by @thomasdraebing in #2403
- fix: do not serialize Label() via "".join() when tar command fails by @jbedard in #2593
- chore: add github_user_id to bcr metadata.template.json by @jbedard in #2588
- fix(pnpm): Parse integrity hash from package.json packageManager if provided by @Geethree in #2596
- fix: npm deps on git+https urls by @jbedard in #2592
- chore(deps): update actions/checkout action to v6 by @renovate[bot] in #2523
- chore(deps): update peter-evans/create-pull-request action to v8 by @renovate[bot] in #2572
- chore(deps): update bazel-contrib/publish-to-bcr action to v1.1.0 by @renovate[bot] in #2599
- test: move babel test deps into test/node-patches/package.json by @jbedard in #2598
- chore(deps): update actions/cache action to v5 by @renovate[bot] in #2602
New Contributors
- @scottshuffler made their first contribution in #2591
- @thomasdraebing made their first contribution in #2403
- @Geethree made their first contribution in #2596
Full Changelog: v2.9.0...v2.9.1
v3.0.0-alpha.3
Many companies are successfully building with rules_js.
If you're getting value from the project, please let us know!
Just comment on our Adoption Discussion.
Using Bzlmod:
Add to your MODULE.bazel file:
bazel_dep(name = "aspect_rules_js", version = "3.0.0-alpha.3")
####### Node.js version #########
# By default you get the node version from DEFAULT_NODE_VERSION in @rules_nodejs//nodejs:repositories.bzl
# Optionally you can pin a different node version:
bazel_dep(name = "rules_nodejs", version = "6.6.0")
node = use_extension("@rules_nodejs//nodejs:extensions.bzl", "node", dev_dependency = True)
node.toolchain(node_version = "18.14.2")
#################################
npm = use_extension("@aspect_rules_js//npm:extensions.bzl", "npm", dev_dependency = True)
npm.npm_translate_lock(
name = "npm",
pnpm_lock = "//:pnpm-lock.yaml",
verify_node_modules_ignored = "//:.bazelignore",
)
use_repo(npm, "npm")
pnpm = use_extension("@aspect_rules_js//npm:extensions.bzl", "pnpm")
# Allows developers to use the matching pnpm version, for example:
# bazel run -- @pnpm --dir /home/runner/work/rules_js/rules_js install
use_repo(pnpm, "pnpm")What's Changed
- feat: add include_npm to pnpm module extension by @jbedard in #2580
- refactor: js_image_layer to output with .tar extension when uncompressed by @jbedard in #2586
- chore: declare aspect_bazel_lib dep on 2.22.4 to include ceaff542 by @jbedard in #2587
Full Changelog: v3.0.0-alpha.2...v3.0.0-alpha.3
v2.9.0
v3.0.0-alpha.2
Many companies are successfully building with rules_js.
If you're getting value from the project, please let us know!
Just comment on our Adoption Discussion.
Using Bzlmod:
Add to your MODULE.bazel file:
bazel_dep(name = "aspect_rules_js", version = "3.0.0-alpha.2")
####### Node.js version #########
# By default you get the node version from DEFAULT_NODE_VERSION in @rules_nodejs//nodejs:repositories.bzl
# Optionally you can pin a different node version:
bazel_dep(name = "rules_nodejs", version = "6.6.0")
node = use_extension("@rules_nodejs//nodejs:extensions.bzl", "node", dev_dependency = True)
node.toolchain(node_version = "18.14.2")
#################################
npm = use_extension("@aspect_rules_js//npm:extensions.bzl", "npm", dev_dependency = True)
npm.npm_translate_lock(
name = "npm",
pnpm_lock = "//:pnpm-lock.yaml",
verify_node_modules_ignored = "//:.bazelignore",
)
use_repo(npm, "npm")
pnpm = use_extension("@aspect_rules_js//npm:extensions.bzl", "pnpm")
# Allows developers to use the matching pnpm version, for example:
# bazel run -- @pnpm --dir /home/runner/work/rules_js/rules_js install
use_repo(pnpm, "pnpm")Full Changelog: v3.0.0-alpha.1...v3.0.0-alpha.2
v3.0.0-alpha.1
Many companies are successfully building with rules_js.
If you're getting value from the project, please let us know!
Just comment on our Adoption Discussion.
Using Bzlmod:
Add to your MODULE.bazel file:
bazel_dep(name = "aspect_rules_js", version = "3.0.0-alpha.1")
####### Node.js version #########
# By default you get the node version from DEFAULT_NODE_VERSION in @rules_nodejs//nodejs:repositories.bzl
# Optionally you can pin a different node version:
bazel_dep(name = "rules_nodejs", version = "6.6.0")
node = use_extension("@rules_nodejs//nodejs:extensions.bzl", "node", dev_dependency = True)
node.toolchain(node_version = "18.14.2")
#################################
npm = use_extension("@aspect_rules_js//npm:extensions.bzl", "npm", dev_dependency = True)
npm.npm_translate_lock(
name = "npm",
pnpm_lock = "//:pnpm-lock.yaml",
verify_node_modules_ignored = "//:.bazelignore",
)
use_repo(npm, "npm")
pnpm = use_extension("@aspect_rules_js//npm:extensions.bzl", "pnpm")
# Allows developers to use the matching pnpm version, for example:
# bazel run -- @pnpm --dir /home/runner/work/rules_js/rules_js install
use_repo(pnpm, "pnpm")What's Changed
- chore: fix release notes prep by @jbedard in #2565
- chore: include e2e.bazelrc in bzlmod releases by @jbedard in #2566
- refactor: remove direct dep on aspect_bazel_lib by @jbedard in #2567
- feat: support bazel path-mapping by @jbedard in #2575
- refactor: expose npm_import repo rule for other extensions to use by @jbedard in #2564
- refactor: do not repeat name="node_modules" assertion per package .bzl by @jbedard in #2568
- fix: npm_import(extract_full_archive) bzlmod attribute not being passed through by @jbedard in #2579
Full Changelog: v3.0.0-alpha.0...v3.0.0-alpha.1
v3.0.0-alpha.0
Many companies are successfully building with rules_js.
If you're getting value from the project, please let us know!
Just comment on our Adoption Discussion.
Using Bzlmod:
Add to your MODULE.bazel file:
bazel_dep(name = "aspect_rules_js", version = "3.0.0-alpha.0")
####### Node.js version #########
# By default you get the node version from DEFAULT_NODE_VERSION in @rules_nodejs//nodejs:repositories.bzl
# Optionally you can pin a different node version:
bazel_dep(name = "rules_nodejs", version = "6.6.0")
node = use_extension("@rules_nodejs//nodejs:extensions.bzl", "node", dev_dependency = True)
node.toolchain(node_version = "18.14.2")
#################################
npm = use_extension("@aspect_rules_js//npm:extensions.bzl", "npm", dev_dependency = True)
npm.npm_translate_lock(
name = "npm",
pnpm_lock = "//:pnpm-lock.yaml",
verify_node_modules_ignored = "//:.bazelignore",
)
use_repo(npm, "npm")
pnpm = use_extension("@aspect_rules_js//npm:extensions.bzl", "pnpm")
# Allows developers to use the matching pnpm version, for example:
# bazel run -- @pnpm --dir /home/runner/work/rules_js/rules_js install
use_repo(pnpm, "pnpm")What's Changed
- refactor: npm_translate_lock_generate.bzl cleanup by @dzbarsky in #2452
- refactor: npm_translate_lock_generate.bzl cleanup by @dzbarsky in #2453
- refactor: remove bazel6 support by @jbedard in #2458
- refactor: remove support for pnpm <v9 by @jbedard in #2456
- test: enable all e2e tests on bzlmod by @jbedard in #2463
- refactor: remove WORKSPACE support by @jbedard in #2455
- refactor: remove the ability to customize node_modules path by @jbedard in #2202
- refactor: remove npm_translate_lock(defs_bzl_filename) by @jbedard in #2466
- refactor: remove exclude_types_from_npm_packages flag by @jbedard in #2464
- refactor: remove support for deprecated include_{npm_sources,npm_linked_packages,declarations} by @jbedard in #2468
- chore: upgrade rules_nodejs to 6.6 by @jbedard in #2467
- refactor: use strict dict property access on known structs by @jbedard in #2471
- refactor: remove old pnpm <v9 logic by @jbedard in #2473
- refactor: minor 3.x cleanup tasks by @jbedard in #2476
- refactor: validate parsed pnpm-lock file/link: references by @jbedard in #2475
- fix: share single package store entry accross all aliases to local projects by @jbedard in #2474
- refactor: improve the npmrc-exists handling by @dzbarsky in #2399
- Prepare for fixing double-parsing by @dzbarsky in #2477
- Changes by create-pull-request action (#2454) by @jbedard in #2479
- refactor: extricate lockfile verification from npm_translate_lock repo rule by @dzbarsky in #2478
- refactor: adopt new NodeJS runtime toolchain by @guw in #2330
- test: importing of dev alias of a non-dev dep by @jbedard in #2482
- refactor: remove unused macro params and return values by @jbedard in #2481
- refactor: clarify internal vs public generated pnpm package macros by @jbedard in #2484
- refactor: cleanup init_pnpm_labels by @dzbarsky in #2485
- refactor: remove npm_import(link_packages) by @jbedard in #2486
- refactor: replace npm_translate_lock(prod,dev) with no_dev flag similar to no_optional by @jbedard in #2487
- refactor: remove --enable_bzlmod usage by @dzbarsky in #2489
- refactor: directly use tar.bzl module by @jbedard in #2460
- cleanup: remove generated stardocs by @alexeagle in #2491
- cleanup(docs): remove rules_nodejs and rules_js 1.x migration by @alexeagle in #2490
- refactor: use attr instead of rctx.attr in lockfile parsing to prep for extension by @dzbarsky in #2492
- chore: remove some WORKSPACE terminology by @jbedard in #2493
- perf: avoid double-parsing pnpm-lockfile by @dzbarsky in #2480
- refactor: remove deprecated npm_translate_lock(replace_packages) by @jbedard in #2494
- refactor: specify bzlmod tag_class(doc) by @jbedard in #2495
- test: add snapshot tests for npm repos with no_dev and no_optional by @jbedard in #2498
- refactor: remove non-bzlmod repository rule APIs by @jbedard in #2496
- refactor: directly use yq.bzl module by @jbedard in #2501
- fix: nodejs toolchains for OCI images by @dzbarsky in #2499
- fix: do not override all snapshots of a package due to one tarball override by @jbedard in #2435
- refactor: remove internal struct merging of importer deps by @jbedard in #2502
- refactor: distinguish package vs repo vs target name by @jbedard in #2503
- refactor: remove use of abortcontroller-polyfill for legacy node versions by @jbedard in #2504
- refactor: replace aspect_bazel_lib//lib:jq with jq.bzl module by @jbedard in #2505
- refactor: align pnpm package store with lockfile by @jbedard in #2177
- refactor: upgrade aspect_bazel_lib to bazel_lib by @jbedard in #2457
- refactor: remove rules_docker tests and examples by @jbedard in #2508
- chore: upgrade bazel7 to 7.7.1 by @jbedard in #2507
- chore: simplify github workflows cache keys by @jbedard in #2513
- refactor: simplify npm target and repo package store naming by @jbedard in #2509
- refactor: do not create empty name="node_modules" targets by @jbedard in #2525
- fix: support pnpm v10+ configuration in pnpm-workspace.yaml by @jbedard in #2528
- chore: remove js/toolchains.bzl by @jbedard in #2531
- chore: remove node16+18 testing by @jbedard in #2530
- refactor: only generate package_json.bzl for direct deps by @jbedard in #2534
- refactor: do not expose RUNFILES var, use JS_BINARY__RUNFILES by @jbedard in #2533
- refactor: do not resort npm packages multiple times by @jbedard in #2535
- refactor: npm_translate_lock simplifying and cleanup by @jbedard in #2537
- refactor: remove more usage of utils.exists by @dzbarsky in #2541
- feat: platform specific optional npm deps by @jbedard in #2538
- test: add snapshot test includign circular npm deps by @jbedard in #2544
- refactor: remove npm_import(transitive_closure) from public extension by @jbedard in #2545
- chore: disable workspace by @jbedard in #2549
- refactor: only use transitive_closure when circular deps or lifecycle hooks exist by @jbedard in #2543
- refactor: do not generate npm lifecycle deps for packages with no lifecycle hooks by @jbedard in #2546
- refactor: simplify npm_link_package() util macro by @jbedard in #2553
- fix: change use of rctx.environ to rctx.getenv by @jbedard in #2554
- refactor: remove npm_translate_lock(link_workspace) by @jbedard in #2551
- refactor: remove npm_translate_lock(additional_file_contents) by @jbedard in #2555
- refactor: remove npm_translate_lock(root_package) by @jbedard in #2552
- perf: optimize package store symlink creation by @dzbarsky in https://github.com/aspect-build/rules_js/p...
v2.8.3
Many companies are successfully building with rules_js.
If you're getting value from the project, please let us know!
Just comment on our Adoption Discussion.
Using Bzlmod with Bazel 6:
Add to your MODULE.bazel file:
bazel_dep(name = "aspect_rules_js", version = "2.8.3")
####### Node.js version #########
# By default you get the node version from DEFAULT_NODE_VERSION in @rules_nodejs//nodejs:repositories.bzl
# Optionally you can pin a different node version:
bazel_dep(name = "rules_nodejs", version = "6.3.0")
node = use_extension("@rules_nodejs//nodejs:extensions.bzl", "node", dev_dependency = True)
node.toolchain(node_version = "18.14.2")
#################################
npm = use_extension("@aspect_rules_js//npm:extensions.bzl", "npm", dev_dependency = True)
npm.npm_translate_lock(
name = "npm",
pnpm_lock = "//:pnpm-lock.yaml",
verify_node_modules_ignored = "//:.bazelignore",
)
use_repo(npm, "npm")
pnpm = use_extension("@aspect_rules_js//npm:extensions.bzl", "pnpm")
# Allows developers to use the matching pnpm version, for example:
# bazel run -- @pnpm --dir /home/runner/work/rules_js/rules_js install
use_repo(pnpm, "pnpm")Using WORKSPACE
Paste this snippet into your WORKSPACE file:
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "aspect_rules_js",
sha256 = "f6118e480c4f12fe88b1a52bab1c7f1886fc10fc2e7588f2eba3b2a53ff05a83",
strip_prefix = "rules_js-2.8.3",
url = "https://github.com/aspect-build/rules_js/releases/download/v2.8.3/rules_js-v2.8.3.tar.gz",
)
load("@aspect_rules_js//js:repositories.bzl", "rules_js_dependencies")
rules_js_dependencies()
load("@aspect_rules_js//js:toolchains.bzl", "DEFAULT_NODE_VERSION", "rules_js_register_toolchains")
rules_js_register_toolchains(node_version = DEFAULT_NODE_VERSION)
load("@aspect_rules_js//npm:repositories.bzl", "npm_translate_lock")
npm_translate_lock(
name = "npm",
npmrc = "//:.npmrc",
pnpm_lock = "//:pnpm-lock.yaml",
verify_node_modules_ignored = "//:.bazelignore",
)
load("@npm//:repositories.bzl", "npm_repositories")
npm_repositories()What's Changed
- refactor: enable strict type checking of fs patches src by @jbedard in #2510
- refactor: remove unreachable fs patch code by @jbedard in #2511
- chore: simplify github workflows cache keys by @jbedard in #2519
- refactor: directly use yq.bzl, jq.bzl by @jbedard in #2506
- test: remove use of gitpkg.vercel.app tarball in tests by @jbedard in #2526
- chore: run github workflows tests on ubuntu-22.04-4core runner by @jbedard in #2527
- perf: avoid exceptions in fs patches using throwIfNoEntry: false by @jbedard in #2512
- fix: support pnpm v10+ configuration in pnpm-workspace.yaml by @jbedard in #2518
- test: add platform specific optional deps test by @jbedard in #2536
- chore(deps): update dependency aspect_tools_telemetry to v0.3.1 by @renovate[bot] in #2517
- chore(deps): update dependency bazel to v7.7.1 by @renovate[bot] in #2520
Full Changelog: v2.8.2...v2.8.3
v2.8.2
Many companies are successfully building with rules_js.
If you're getting value from the project, please let us know!
Just comment on our Adoption Discussion.
Using Bzlmod with Bazel 6:
Add to your MODULE.bazel file:
bazel_dep(name = "aspect_rules_js", version = "2.8.2")
####### Node.js version #########
# By default you get the node version from DEFAULT_NODE_VERSION in @rules_nodejs//nodejs:repositories.bzl
# Optionally you can pin a different node version:
bazel_dep(name = "rules_nodejs", version = "6.3.0")
node = use_extension("@rules_nodejs//nodejs:extensions.bzl", "node", dev_dependency = True)
node.toolchain(node_version = "18.14.2")
#################################
npm = use_extension("@aspect_rules_js//npm:extensions.bzl", "npm", dev_dependency = True)
npm.npm_translate_lock(
name = "npm",
pnpm_lock = "//:pnpm-lock.yaml",
verify_node_modules_ignored = "//:.bazelignore",
)
use_repo(npm, "npm")
pnpm = use_extension("@aspect_rules_js//npm:extensions.bzl", "pnpm")
# Allows developers to use the matching pnpm version, for example:
# bazel run -- @pnpm --dir /home/runner/work/rules_js/rules_js install
use_repo(pnpm, "pnpm")Using WORKSPACE
Paste this snippet into your WORKSPACE file:
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "aspect_rules_js",
sha256 = "20fc40c64bf36054e9564333015bc2e212e975d6c0a50e1319de516c469e3538",
strip_prefix = "rules_js-2.8.2",
url = "https://github.com/aspect-build/rules_js/releases/download/v2.8.2/rules_js-v2.8.2.tar.gz",
)
load("@aspect_rules_js//js:repositories.bzl", "rules_js_dependencies")
rules_js_dependencies()
load("@aspect_rules_js//js:toolchains.bzl", "DEFAULT_NODE_VERSION", "rules_js_register_toolchains")
rules_js_register_toolchains(node_version = DEFAULT_NODE_VERSION)
load("@aspect_rules_js//npm:repositories.bzl", "npm_translate_lock")
npm_translate_lock(
name = "npm",
npmrc = "//:.npmrc",
pnpm_lock = "//:pnpm-lock.yaml",
verify_node_modules_ignored = "//:.bazelignore",
)
load("@npm//:repositories.bzl", "npm_repositories")
npm_repositories()What's Changed
- refactor: npm_translate_lock_generate.bzl cleanup by @dzbarsky in #2452
- refactor: npm_translate_lock_generate.bzl cleanup by @dzbarsky in #2453
- fix: bzlmod defs_bzl_filename, root_package, additional_file_content by @jbedard in #2462
- test: enable all e2e tests on bzlmod by @jbedard in #2461
- refactor: use strict dict property access on known structs (#2471) by @jbedard in #2472
- Changes by create-pull-request action by @github-actions[bot] in #2454
- test: importing of dev alias of a non-dev dep (#2482) by @jbedard in #2483
Full Changelog: v2.8.1...v2.8.2
v2.8.1
Many companies are successfully building with rules_js.
If you're getting value from the project, please let us know!
Just comment on our Adoption Discussion.
Using Bzlmod with Bazel 6:
Add to your MODULE.bazel file:
bazel_dep(name = "aspect_rules_js", version = "2.8.1")
####### Node.js version #########
# By default you get the node version from DEFAULT_NODE_VERSION in @rules_nodejs//nodejs:repositories.bzl
# Optionally you can pin a different node version:
bazel_dep(name = "rules_nodejs", version = "6.3.0")
node = use_extension("@rules_nodejs//nodejs:extensions.bzl", "node", dev_dependency = True)
node.toolchain(node_version = "18.14.2")
#################################
npm = use_extension("@aspect_rules_js//npm:extensions.bzl", "npm", dev_dependency = True)
npm.npm_translate_lock(
name = "npm",
pnpm_lock = "//:pnpm-lock.yaml",
verify_node_modules_ignored = "//:.bazelignore",
)
use_repo(npm, "npm")
pnpm = use_extension("@aspect_rules_js//npm:extensions.bzl", "pnpm")
# Allows developers to use the matching pnpm version, for example:
# bazel run -- @pnpm --dir /home/runner/work/rules_js/rules_js install
use_repo(pnpm, "pnpm")Using WORKSPACE
Paste this snippet into your WORKSPACE file:
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "aspect_rules_js",
sha256 = "6e4637a63acbd2ca080f463cb18fc0d7439f2401adbfe0028f3f4544c9eb8085",
strip_prefix = "rules_js-2.8.1",
url = "https://github.com/aspect-build/rules_js/releases/download/v2.8.1/rules_js-v2.8.1.tar.gz",
)
load("@aspect_rules_js//js:repositories.bzl", "rules_js_dependencies")
rules_js_dependencies()
load("@aspect_rules_js//js:toolchains.bzl", "DEFAULT_NODE_VERSION", "rules_js_register_toolchains")
rules_js_register_toolchains(node_version = DEFAULT_NODE_VERSION)
load("@aspect_rules_js//npm:repositories.bzl", "npm_translate_lock")
npm_translate_lock(
name = "npm",
npmrc = "//:.npmrc",
pnpm_lock = "//:pnpm-lock.yaml",
verify_node_modules_ignored = "//:.bazelignore",
)
load("@npm//:repositories.bzl", "npm_repositories")
npm_repositories()What's Changed
- test: upgrade e2e/npm_translate_lock_empty to pnpm 9 by @jbedard in #2414
- chore: upgrade e2e tests to pnpm v9+ by @jbedard in #2413
- refactor: simplify/cleanup generate_repository_files macro by @jbedard in #2419
- fix: respect dev vs non-dev dependencies of workspace projects at link time by @jbedard in #2418
- chore: allow DirectoryPathInfo to vary bazel_lib vs aspect_bazel_lib by @alexeagle in #2421
- refactor: sort entries in _NPM_PACKAGE_LOCATIONS by @jbedard in #2422
- test: references to packages under multiple aliases by @jbedard in #2423
- refactor: simplify generated npm_link_targets implementations by @jbedard in #2424
- refactor: remove duplicate unused npm_link_targets generation code by @jbedard in #2426
- refactor: group fp package store targets alongside third-party by @jbedard in #2425
- refactor: group fp package linking alongside third-party by @jbedard in #2427
- refactor: remove unnecessary none check by @jbedard in #2430
- refactor: only generate package_json.bzl once per package instead of per link by @jbedard in #2433
- refactor: reduce generated code for linking of first-party packages by @jbedard in #2429
- chore: bump bazel-lib to pick up bazel 9 fix by @alexeagle in #2432
- refactor: simplify generated npm_link_all_packages() code by @jbedard in #2428
- refactor: remove old aspect CLI by @alexeagle in #2434
- fix: avoid sh_binary by @alexeagle in #2436
- chore: sanitize some file sizes in golden files by @alexeagle in #2437
- chore: test on bazel 9 by @alexeagle in #2431
- chore: downgrade rules_lint to 1.1.0 for bazel6 compat by @jbedard in #2440
- fix: ensure default bzlmod pnpm version aligns with DEFAULT_PNPM_VERSION by @jbedard in #2439
- test: run tests on same version as .bazelversion by @jbedard in #2443
- refactor: move first-party package versioning logic into common code by @jbedard in #2442
- test: snapshot tests for vendored tarball generated repos by @jbedard in #2444
- refactor: remove duplicate pnpm v9 importer path normalization by @jbedard in #2446
- fix: treat file: references in package store the same as pnpm by @jbedard in #2445
- test: upgrade e2e tests to pnpm 9+ by @jbedard in #2451
- refactor: use pnpm file: id field by @jbedard in #2449
Full Changelog: v2.8.0...v2.8.1