HQL packages publish ordinary JavaScript artifacts while keeping HQL source as the authoring format.
hql init ./my-lib --name @example/my-lib --version 0.1.0
This creates package config and source layout for the HQL package manager.
hql add ./my-lib npm:lodash-es@^4.17.21
hql add ./my-lib jsr:@std/encoding@^1.0.0
hql add ./my-lib https://example.com/mod.ts
HQL accepts npm, JSR, URL, and bare specifier inputs through the package command surface.
hql check ./my-lib
hql build ./my-lib --target jsr
hql pack ./my-lib --target all
hql publish ./my-lib --dry-run
hql publish --dry-run runs the publish pipeline without uploading artifacts.
Use it before publishing real artifacts.
Use the HQL toolchain for raw .hql files:
hql run main.hql
hql compile main.hql -o main.js
Plain Node.js, Deno, Bun, and browsers consume the compiled ESM output. They do
not load raw .hql source unless a bundler/plugin or HQL runtime toolchain is
involved.
The module system canonicalizes imports so equivalent module specifiers share a single module namespace. Cycles are represented as ESM cycles instead of duplicated compiled copies.
See Language: Modules for syntax and import forms.