Skip to content

VulcanJS/vulcan-npm

Repository files navigation

Vulcan NPM

What is Vuclan

Vulcan is an open source full-stack JavaScript toolkit.

It brings everything you need to create modern web applications on top of modern frameworks.

This monorepo is where all the development happens. Only contributor should need to clone it, if you want to create an app with Vulcan:

See Vulcan docs for detailed documentation: https://vulcan-docs.vercel.app/

Contribute

After you've read the README, also check the contribution documentation for more information about contributions.

Architecture of the monorepo

  • Turborepo to run scripts efficiently
  • Yarn 3 workspaces
  • TypeScript
  • Tsup (Esbuild + Rollup) for bundling packages
  • Packages in packages and starter apps in starters
  • Storybook
  • Jest client and server tests
  • Docusaurus documentation

From Lerna to Yarn 2

RIP lerna

Lerna is officially deprecated. Instead we are progressively replacing it with Yarn 2 workspaces.

# 1. Install Node 16.10+, then:
corepack enable
yarn set version stable

Plugins are already installed, since some parts of the ".yarn" folder are stored in the repo (Yarn executable, plugins etc.)

Install Vulcan NPM and start coding

Please use Yarn

yarn # will install + bootstrap learn
yarn run build # build all packages

Now you can either run Storybook yarn run storybook or unit tests yarn run test and start working.

Plug to another local application

If you want to connect your local Vulcan NPM install to an existing application, please check Vulcan Next documentation.

It's a 2 step process:

  • you publish the packages locally using Yalc yarn run publish:local
  • you install them, using Yalc, in your app.

We use Yalc and not yarn link because linking is not sufficient, it raises a lot of issues with locally installed packages.

Now @vulcanjs/xxx will be available in your own application.

Windows

To use a testing database on windows, you could encounter an unexpected issue ; a solution is to download Visual C++ redistribuable. See typegoose/mongodb-memory-server#475

Ubuntu updates

Best solution is to use a dockerized Mongo instead or stick to Ubuntu 20.

Resources


Powered by Vercel