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

@lbatchelor/bolt

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@lbatchelor/bolt

> Super-powered JavaScript project management

  • 0.15.0-debug
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
0
decreased by-100%
Maintainers
1
Weekly downloads
 
Created
Source

Bolt

Super-powered JavaScript project management

Introduction

Find it difficult to manage lots of components, libraries, or services? Juggling lots of Node packages in lots of different repositories? What if there was a better way?

Diagram: One package per project

Most JavaScript projects have 1 package per project (repo). So when you have lots of packages, you have to do a lot of work to manage them all.

  • You need to install every single package one by one.
  • If you make changes to one package and want to test them in another, you need to manually link them together and run tests separately.
  • Managing dependencies and keeping everything up to date can be overwhelming, and you can easily fall really far behind.

Instead of all that, what if you put all of your packages together?

Diagram: Project with many packages

This is the idea behind "workspaces".

What are workspaces?

Within a project, a workspace is just a directory with its own package.json.

project
├── package.json
├── workspace-one
│   ├── package.json
│   └── index.js
└── workspace-two
    ├── package.json
    └── index.js

Put another way, workspaces are just like any other package, except they are nested within a larger project. Each workspace can have its own dependencies with its own code and scripts.

Using Bolt, you can install the dependencies for all of these packages at once (and you can do it really really fast).

But here's where it gets really cool: When you specify a dependency from one workspace to another. It will get linked to the actual source. This way, when you go to test your code. All your changes get tested together.

What is Bolt?

Bolt implements the idea of workspaces on top of Yarn. In fact, the Bolt CLI is largely a drop-in replacement of the Yarn CLI. You can use it on any project already using Yarn.

But Bolt (will soon) do lots of other stuff. Instead of wasting tons of time setting up a whole bunch of build tools for running your tests, or compiling your code, what if your package manager just did all that for you? Then when you want to do something differently, all you need to do is override a script.

Well that's what Bolt will do for you (once we get around to implementing it).

Long term, many of the features in Bolt will hopefully prove to be useful and other package managers like Yarn and npm will adopt them.

Installation

First be sure that you have Node/npm and Yarn installed. Then run the following command:

yarn global add bolt

Thanks to Cam Pedersen (@ecto) for the "bolt" package name on npm

Commands

Note: Bolt is under active development and some of these commands have not yet been implemented.

CommandDescription
bolt(Defaults to bolt install)
bolt [unknown command](Defaults to bolt run [unknown command])
bolt helpView Bolt's help content
bolt help [command]View Bolt's help content for a single command
bolt initCreate a new Bolt package in the current directory
bolt init --yesSkip the prompts and use defaults
bolt installInstall all the dependencies for a project
bolt add [dependency]Add a dependency
bolt upgrade [dependency]Upgrade a dependency
bolt versionUpdates the version of your package(s)
bolt publishPublish new version(s) of your package(s) to npm
bolt publish-lockLock your package(s) on the npm registry
bolt publish-unlockUnlock your package(s) on the npm registry
bolt run [script]Run a script in a package
bolt buildBuild your package(s) (Default: Babel)
bolt testTest your package(s) (Default: Jest)
bolt format/fmtFormat the files in your package(s) (Default: Prettier)
bolt lintLint your package(s) (Default: ESLint)
bolt docGenerate docs (Default: Documentation.js)
bolt checkType check your package(s) (Default: Flow)
bolt workspaces/wsRun the following commands across all workspaces:
bolt ws run [script]Run a script in every package
bolt ws upgrade [dependency]Upgrade a dependency from every package that depends on it
bolt ws remove [dependency]Remove a dependency from every package that depends on it
bolt ws ... --only [name glob]Filter workspaces by name
bolt ws ... --ignore [name glob]Filter out workspaces by name
bolt ws ... --only-fs [file glob]Filter workspaces by file path
bolt ws ... --ignore-fs [file glob]Filter out workspaces by file path
bolt workspace/w [name]Run the following commands on a single workspace:
bolt w [name] run [script]Run a script in a single workspace
bolt w [name] add [dependency]Add a dependency to a single workspace
bolt w [name] upgrade [dependency]Upgrade a dependency in a single workspace
bolt project/pRun the following commands on your project package:
bolt p run [script]Run a script on the project package
bolt p add [dependency]Add a dependency to the project package
bolt p remove [dependency]Remove a dependency from the project package
bolt p upgrade [dependency]Upgrade a dependency on the project package
bolt generate/g [generator]Create files in your package using a generator:
bolt g license [license]Create a LICENSE file in your package (Default: MIT)

FAQs

Package last updated on 30 Oct 2017

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