Skip to content

Releases: aspect-build/rules_js

v3.0.0-alpha.4

14 Jan 21:44
af8f6f7

Choose a tag to compare

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

05 Jan 19:55
ee2708b

Choose a tag to compare

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

Full Changelog: v2.9.0...v2.9.1

v3.0.0-alpha.3

17 Dec 20:16
b7ca695

Choose a tag to compare

v3.0.0-alpha.3 Pre-release
Pre-release

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

02 Jan 22:05
092dd78

Choose a tag to compare

What's Changed

  • feat: support bazel path-mapping (#2575) by @jbedard in #2576
  • docs: typo with the include_external_repositories example by @jbedard in #2582
  • js image layer to output with .tar extension when uncompressed by @fa93hws in #2585

New Contributors

Full Changelog: v2.8.3...v2.9.0

v3.0.0-alpha.2

12 Dec 01:47
1e9a056

Choose a tag to compare

v3.0.0-alpha.2 Pre-release
Pre-release

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

11 Dec 23:18
0cc841e

Choose a tag to compare

v3.0.0-alpha.1 Pre-release
Pre-release

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

08 Dec 21:09
7c85b56

Choose a tag to compare

v3.0.0-alpha.0 Pre-release
Pre-release

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...
Read more

v2.8.3

02 Dec 19:54
409b866

Choose a tag to compare

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

18 Nov 14:13
cad9b90

Choose a tag to compare

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

10 Nov 06:31
60c5a89

Choose a tag to compare

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