# esm.sh A _no-build_ JavaScript CDN for modern web development. ## Project Structure - `cli/`: Command-line interface (releases as the npm `esm.sh` CLI). - `internal/`: Go packages for import maps, NPM resolution, storage, and module replacements. - `server/`: Main HTTP service: request handling, bundling, and CDN behavior. - `test/`: Deno-based integration suites; each subdirectory exercises imports against a running server (`test/.template` is the scaffold for new cases). ## Running the Server in Debug Mode ```bash make run/server ``` Then you can import modules from `http://localhost:8080/[@][/][?]` in browser/Deno. More usage examples can be found in the [README](./README.md). ## Running Server Integration Tests We use [Deno](https://deno.land) to run all the integration testing cases. Make sure you have Deno installed on your computer. ```bash # Run all tests make test/server # Run a specific test make test/server dir=react-18 ``` To add a new integration test case, copy the [test/.template](./test/.template) directory and rename it to your case name. ```bash # copy the testing template cp -r test/.template test/test-case-name # edit the test code vi test/test-case-name/test.ts # run the test make test/server dir=test-case-name ``` ## Running Server Unit Tests ```bash go test ./server/... ``` ## CDN The project has been deployed to https://esm.sh. - https://esm.sh/status.json: CDN status. - https://esm.sh/[@][/][?]: CDN URL for the package.