Registry / devops / sitting-duck

sitting-duck

JSON →
library2.6.1jsnpmunverified

A legacy minifier that combines swc for outdated script-style code and esbuild for modern ES6+ syntax, enabling gradual project modernization without breaking existing codebase. v2.6.1 (stable, released 2023-09) ships TypeScript types. Key differentiators: safety-first approach (preserves original globals, only outputs minified sidecar files) and uses a // @MODULE annotation for selective module bundling. Active maintenance with low release cadence.

npm install sitting-duck
INSTALL
IMPORT
SIG · SITTING-DUCK
S
sitting-duck
devopsjavascriptv2.6.1
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

default
import minify from 'sitting-duck'
const minify = require('sitting-duck')
Package is ESM-only since v2; CJS require will fail with ERR_REQUIRE_ESM
minify function call
minify(['src/*.js', '!node_modules'], ['*.css'])
minify('src/*.js', '*.css')
Glob patterns can be string (comma-separated) or array format; array is recommended for clarity
TypeScript types
import type { Options } from 'sitting-duck' import minify from 'sitting-duck'
import { minify, Options } from 'sitting-duck'
The default export is minify; Options type can be imported as named for TypeScript users

Demonstrates basic usage of sitting-duck with glob patterns for JavaScript and CSS files, excluding already minified files and node_modules.

// minify.mjs import minify from 'sitting-duck'; // Minify legacy JS files (excluding node_modules and existing .min.js) and CSS files minify( ['src/**/*.js', '!node_modules/**', '!**/*.min.js'], ['src/**/*.css', '!node_modules/**', '!**/*.min.css'] );
Debug
Known issues
gotchaFiles with // @MODULE annotation are bundled as ESM modules; all other files are treated as legacy scripts (IIFE) and minified only.
fix
Ensure files using import/export statements have // @MODULE as the first line; otherwise swc minification may break syntax.
affects: >=2.0
breakingPackage switched to ESM-only in v2.0. Requires Node.js >=12 with "type": "module" in package.json or .mjs extension.
fix
Use import syntax; rename file to .mjs or set "type": "module" in package.json.
affects: >=2.0
deprecatedThe '--dev' CLI flag is deprecated in v2.5.0 in favor of environment variable NODE_ENV=development for source maps.
fix
Use NODE_ENV=development instead of --dev flag.
affects: >=2.5 <2.6
gotchaCSS @import paths are relative to the source file; esbuild may resolve differently than legacy CSS processors.
fix
Use relative paths in CSS @import; test after minification.
affects: >=1.0
Errors
Common errors & fixes
TypeError: minify is not a function
CommonJS require() used on ESM-only package
fix
Change to import minify from 'sitting-duck' and ensure file is ESM (.mjs or { "type": "module" })
SyntaxError: Unexpected token 'export'
File using export but missing // @MODULE annotation
fix
Add // @MODULE as the very first line of the file (before any code)
Error: No matching files found for pattern
Glob pattern has no matches or typo in pattern
fix
Verify glob pattern and file paths; use array form: ['src/*.js', '!node_modules']
Upgrade
Version history
2.6.1latest on npm
Audit
Dependencies
esbuildrequiredBundles modern ES6+ modules and minifies CSS
swcrequiredMinifies legacy script files without transforming syntax
Agent activity
5 hits · last 30 days
node
4
Resources
sitting-duck — npm install sitting-duck · libregistry