npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@genesisx/create-workspace

v4.0.4

Published

Generator package for Smart, Fast and Reusable Project Scaffolds

Downloads

164

Readme

create-workspace

This package offers the opportunity to effortlessly establish a fresh workspace, harnessing the potent presets of GenesisX in combination with selectable plugins for the accelerated inception of your upcoming application or project. The package caters to both NX and Turbo workspaces.

Directory Structure

Below is a typical directory structure for a workspace generated using the Genesis create-workspace CLI.

  1. NX workspace
  my-nx-workspace
  ├── apps/
  ├── libs/
  ├── tools/
  ├── .gitignore
  ├── .prettierrc
  ├── nx.json
  ├── package.json
  ├── README.md
  ├── tsconfig.base.json
  └── workspace.json
  1. TURBO workspace
  my-turbo-workspace
  ├── apps/
  |   ├── docs/
  |   └── web/
  ├── packages
  |   ├── eslint-config-custom/
  |   ├── tsconfig/
  |   └── ui/
  ├── .gitignore
  ├── .eslintrc
  ├── .npmrc
  ├── package.json
  ├── README.md
  └── turbo.json

The NX folder structure is well-suited for most of our NX based packages that rely on shared libraries and features used across multiple applications.

To generate files and apply the "App" preset, the GenesisX CLI uses the create-nx-workspace command. One of the benefits of using create-workspace is that you can select which GenesisX plugins to install automatically. Additionally, it builds the project using the latest supported version of NX that has been tested with GenesisX plugins.

Note: If you are opting for the Turbo based workspace, you will not have the option to select the GenesisX plugins which are currently NX based. We are working on making the existing plugins NX agnostic and thus will be available for Turbo based workspaces as well in the near future.

Usage

The CLI runs as an NPX script and will prompt you for more input as required. Open a terminal in the folder where you would like to create your project. It will prompt you for a project name and will create files in a directory by that name (in snake case).

Interactive Mode

  npx @genesisx/create-workspace@latest
  1. Run the above command where you want your workspace generated.
  2. Select the desired monorepo solution you want to use.
  3. Provide a name for your new workspace.
    • If NX, select the NX based GenesisX application generators to be installed along with the workspace initialization.
    • If Turbo, select the package manager to be used for the workspace initialization.

Non-interactive Mode

  • NX workspace
npx @genesisx/create-workspace@latest --nx <workspace-name>
  • TURBO workspace
npx @genesisx/create-workspace@latest --turbo <workspace-name>

Generators & Plugins

Nx provides a large number of generators and executors that can be used by installing plugins. There are a huge number of communitiy maintained plugins which can be found in the Nx Plugin Directory and officially supported plugins for all major frameworks:

React

Angular

React Native

Genesis Plugins

The goal of the Genesis project is to accelerate development and increase quality by providing templates that encapsulate best practices through generators that can be run against your project. Genesis plugins are installed into the node_modules directory and can be run from the command line or from the Nx console in Visual Studio Code. You can also "eject" a plugin which will convert it into a workspace generator which you can customize as required.

Contributing

Build Commands

To build the CLI run this command in the terminal:

nx run create-workspace:build To execute lint checks run: nx run create-workspace:lint To execute unit test cases run: nx run create-workspace:test

Publishing

To publish the package you must first be logged into NPM (npm login) then run this command from the root of the project.

  • Make sure the package name in package.json should start with @genesisx/
  • Also use the correct version number in package.json same will be used for the published package.
  • Use your NPM js credentials (Publicis Sapient) with publish rights
  • Verify the package at https://www.npmjs.com/settings/genesisx/packages

npm publish dist/packages/create-workspace --access public