How Alibaba’s Seed Spec Stacks Up Against Modern Import Maps
This article examines Alibaba's Tianma "seed" module specification, compares it with the emerging import‑maps standard, and discusses their impact on web performance, dependency management, and future front‑end architecture.
Old Web Resource Reference Issues
Although modern browsers are fast, pages still suffer from loading performance because all required files must be downloaded remotely, which is the biggest difference between Web and native.
The community has evolved through several stages:
From plain <script> ordering to CDN combo.
From no module system to CommonJS for synchronous loading.
To AMD for declaring asynchronous dependencies.
To bundling solutions such as Dojo and Webpack to overcome request limits.
To bundless approaches with ES Module, import maps, and other standards.
Seed Spec vs Import Maps
The Tianma seed spec originates from KISSY, adopts the CMD format because its output generation is simpler, and retains modular development under a dynamic building background. Its differences from most low‑code platforms are:
Modular development hides build logic, automatically deduplicates shared dependencies, and requires no manual build steps.
Pages are published without a build process; rendering happens on the client, allowing massive simultaneous edits.
Each page can have independent releases, and module version updates can be scoped to a single page.
After five years, the seed spec faces several issues, which we compare with import maps.
Import Maps Settings
Import maps are declared with <script type="importmap"> and must be loaded before any module that uses them; the loading is blocking, and only one import map can be used per page. The script must have MIME type application/importmap+json and respect CSP.
<script type="importmap">{ "imports": { ... }, "scopes": { ... } }</script>Because of these constraints, developers cannot manage dependencies as flexibly as in Node.js; they must declare all external library dependencies in the import map, which can be cumbersome.
Package Support
Both seed and import maps support a packages concept to declare module directories, reducing repetitive path declarations.
{
"modules": {
"example-1/index": { "requires": ["example-1/utils"] }
},
"packages": {
"example-1": { "path": "/example-1/" }
}
}Scope and Major‑Version Incompatibility
Import maps allow scoped configurations so that different files can load different versions of the same library. Seed currently lacks scope support; instead, major‑version differences are encoded in the module name (e.g., example-1@1 vs example-1@2).
{
"packages": {
"example-1@1": { "version": "1.0.1", "path": "/example-1/1.0.1/" },
"example-1@2": { "version": "2.0.2", "path": "/example-1/2.0.2/" }
}
}Dependency Module Download
In the seed mechanism, a module can declare dependencies (similar to npm dependencies) and the loader will concurrently download all required files, including transitive dependencies, ensuring the module can execute.
{
"modules": {
"example-1/index": { "requires": ["example-1/utils", "example-1/tools"] }
}
}Seed also supports CDN combo, merging multiple dependencies into a single request, which can be faster than many parallel requests. Import maps currently lack such a feature, leading to serial downloads.
About Seed Next
Future work aims to move from CMD to ES Module while providing downgrade paths for CommonJS, and to create a more standardized dependency loading approach that combines CDN combo, async concurrent downloads, native cache, PWA, HTTP/2 Push, Web Bundle, and experimental browser pre‑fetching.
References
github/import-maps
W3C import maps draft
SystemJS support for import‑maps
Import maps need CSP support
Import maps depcache proposal
KISSY config
YUI Loader
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
