Sofy
raw JSON → 1.0.7 verified Fri May 01 auth: no javascript abandoned
Sofy is an extended JavaScript bundler (v1.0.7) built on top of Gulp, Rollup, Webpack, and Babel, allowing developers to define file compilation tasks in a single config file (sofy.js). It supports SCSS/CSS processing (minification, autoprefixing), JavaScript bundling (Webpack, Babel, uglify), file concatenation, and watching. The stable version is 1.0.7 with no recent changes beyond minor fixes. Compared to pure Webpack or Rollup, Sofy offers a lower-config abstraction for Gulp-like task definitions but sacrifices flexibility and modern ESM support. The repository is archival? (See warnings), and the package has very low usage and maintenance.
Common errors
error Error: Cannot find module 'gulp-combine-files' ↓
cause Missing peer dependency or deprecated package not installed.
fix
Remove 'combine_files' from config or install the missing plugin: npm install gulp-combine-files --save-dev
error sofy: command not found ↓
cause Sofy CLI not installed globally or not run via npx.
fix
Use npx sofy --create or install globally: npm install -g sofy
error TypeError: Cannot read property 'presets' of undefined ↓
cause Babel config not passed correctly in sofy.js config block.
fix
Ensure config.bable_custom_config1 is defined and referenced correctly in file options.
error Error: `output.rollupOptions` is not supported in sofy. ↓
cause Mixing Rollup-style config with Sofy's own config structure.
fix
Use Sofy's files/config keys instead of Rollup options.
Warnings
gotcha The package name 'sofy' conflicts with a popular Instagram dog account; documentation is whimsical and not serious. ↓
fix Avoid using for production; consider alternatives like Webpack, Rollup, or Gulp directly.
deprecated Package has not been updated since 2020 (v1.0.7); uses outdated Gulp 3/4 patterns and deprecated plugins like gulp-combine-files. ↓
fix Migrate to modern build tools (e.g., Vite, esbuild) or plain Gulp 4 with current plugins.
breaking The config option 'bable' is misspelled (should be 'babel'); common typo in documentation. ↓
fix Use 'babel' in config, not 'bable'.
gotcha All JavaScript processing (Babel, Webpack, Rollup) uses Gulp plugins that may not be compatible with Node.js >12. ↓
fix Use Node.js 12 or downgrade to older plugin versions; check peer deprecations.
deprecated The package relies on gulp-combine-files which is unmaintained and may cause issues. ↓
fix Avoid using 'combine_files: true'; use concat or manual file combinations.
Install
npm install sofy yarn add sofy pnpm add sofy Imports
- sofy wrong
import sofy from 'sofy';correctconst sofy = require('sofy'); - Sofy (CLI) wrong
sofy --createcorrectnpx sofy --create - module.exports (config) wrong
export default { ... };correctmodule.exports = { files: {...}, config: {...} };
Quickstart
// sofy.config.js
const files = {
'src/app.js': {
dist: 'dist/',
rename: 'app.bundle.js',
bable: true,
uglify: true,
watch: ['src/**/*.js']
}
};
const config = {
bable_custom_config1: {
presets: ['@babel/preset-env']
}
};
module.exports = { files, config };
// Then run: npx sofy --compile