Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

merger-js

Package Overview
Dependencies
Maintainers
1
Versions
69
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

merger-js

Yet another light weight and simple cross-platform build tool for JavaScript files, with CLI tooling, file imports, auto build capabilities and native OS notifications.

  • 3.0.1
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
15
decreased by-98.76%
Maintainers
1
Weekly downloads
 
Created
Source

MergerJS

npm LICENSE

Yet another lightweight and simple cross-platform build tool for JavaScript files, with CLI tooling, file imports, auto build capabilities and native OS notifications.

Because merger uses uglify-es for minification, you don't need to use any kind of transpilers in conjunction with this tool. You can use ES6+.

This tool is intended for small projects.

MergerJS does not support circular dependencies

NPM: LINK
GitHub: LINK
License: MIT
Dependencies:
├── uglify-es
├── neo-async
├── chokidar
├── commander
├── inquirer
├── node-notifier
├── chalk




IMPORTANT NOTICE FOR PEOPLE WHO USE MERGER JS v2+

I will start working on the (final) v3 of MergerJS and there will be significant breaking changes.

I feel the need to have multiple source files in order to be able to make different build files.
(To use different JS build files on different HTML pages, for example)

To do that I will need to change the merger-config model, as well as the MergerJS CLI tool.

V3 will be the last major version of MergerJS. After v3 there will be only bug fixes, improvements, refactorings and other minor features, always keeping this project simple and lightweight.




Features

  • CLI tooling
  • Merge multiple JS files into one
  • Use @import comments on a source file to specify the build order
  • Minification, supporting ES6+ (optional)
  • Auto builds on files changes (optional)
  • Native OS build notifications (optional)
  • Support multiple source files (TODO)

 

Getting Started

1) Node.js

You will need Node.js installed to run merger.

2) Install merger with NPM

Install globally -g with NPM:

npm i merger-js -g

or

npm install merger-js -g

 

Use:

  1. Choose a source file (the first file to be merged) and, on the top of that file, add comments importing the files in the order you want them to be built, from the first to the last.
    Just like in a browser.

    Example:

    // @import 'helpers'
    // @import 'requests'
    // @import 'handlers'
    // @import 'listeners'
    // @import 'feature'
    
    • Instead of // @import 'fileName', you can just // @'fileName';
    • The extension names .js are optional;
    • The import of the source file is optional;
    • You can import files from different directories relative to the same source file.
      Example: // @import '../otherFolder/someFile'

 

  1. Run merger init on your working JS directory:
  • If you run merger on your working JS directory, the CLI tool will give you default paths relative to that directory.
  • You can set minify to 'Yes', to minify on build.
  • You can set autoBuild to 'Yes', to make merger listen for file changes and build automatically when there's one.

 

  1. After having a merger-config.json file on the source directory (the directory where your working files are located), you have different alternatives to run merger:
  • You can run merger or merger build, on the source directory, and the merger-config.json folder will be parsed and merger will build with the config you gave it on the config file.
  • You can run merger auto or merger build auto to run a one time auto build session (it watches the source directory for changes and builds when there's one), if you, for example, told the CLI that you didn't want auto builds and you don't want to change that.

 

Commands

The merger commands are to be made on the directory with the merger-config.json file.

  • merger init: Configure merger. It creates a merger-config.json file on your working directory.

  • merger or merger build: Execute the build with the configuration you gave it on the merger-config.json file.

    • merger auto, merger build -a or merger build --auto: Execute an automatic build session. You can do this, for example, when you have auto builds turned of and you don't want to change that.
  • merger update: Update MergerJS.

  • merger set <configuration> <value>: Edit a configuration key on the merger-config file.
    At the moment you can pass:

    • The <configuration> mnfy, minify or uglify and the <value> -t / --true or -f / --false to set minification to true or false (on/off);
    • The <configuration> auto or autobuild and the <value> -t / --true or -f / --false to set auto builds to true or false (on/off);
    • The <configuration> ntfs, notifs, or notifications and the <value> -t / --true or -f / --false to set the native OS notifications to true or false (on/off);

    Examples: merger set minify -f, merger set autobuild --true.

 

Versioning

Merger uses SemVer for versioning. You can read the changelog here.

 

Code Style

JavaScript Standard Style, with semicolons.

I only do not use semicolons on browser JS.

 

Motivation

When I started doing academic web projects, I felt the need for a build tool to merge all my JS files into one, cleaning the HTML pages and optimizing my workflow.
I wanted something simple and fast, so I built MergerJS to use in my small web-app projects.

Keywords

FAQs

Package last updated on 04 May 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc