All Projects → Apployees → Apployees Nx

Apployees / Apployees Nx

Licence: other
A collection of builders and extensions for the https://nx.dev monorepo tooling.

Programming Languages

typescript
32286 projects

Projects that are alternatives of or similar to Apployees Nx

Cra Monorepo Examples
Monorepo w/ shared components.
Stars: ✭ 80 (+86.05%)
Mutual labels:  create-react-app, monorepo
antonybudianto-web-old
Personal website
Stars: ✭ 14 (-67.44%)
Mutual labels:  create-react-app, universal
Generator Django Rest
Yeoman generator for a Django REST/GraphQL API, an optional React SPA & lots more!
Stars: ✭ 77 (+79.07%)
Mutual labels:  create-react-app, monorepo
Create React App
Yarn Workspaces Monorepo support for Create-React-App / React-Scripts.
Stars: ✭ 76 (+76.74%)
Mutual labels:  create-react-app, monorepo
Cra Universal
🌏 Create React App companion for universal app. No eject, auto SSR, zero config, full HMR, and more (inactive project)
Stars: ✭ 419 (+874.42%)
Mutual labels:  create-react-app, universal
cra-monorepo-demo
Monorepo example using create-react-app and common component library structure with yarn workspaces
Stars: ✭ 37 (-13.95%)
Mutual labels:  create-react-app, monorepo
Sambell
wake me when it's quitting time
Stars: ✭ 101 (+134.88%)
Mutual labels:  create-react-app, universal
React Workspaces Playground
⚛️ 🐈 Zero Config Create-React-App Monorepos with Yarn Workspaces, Lerna and React Storybook.
Stars: ✭ 658 (+1430.23%)
Mutual labels:  create-react-app, monorepo
monoreact
📦 React workspaces implementation
Stars: ✭ 13 (-69.77%)
Mutual labels:  create-react-app, monorepo
crassa
Create React App Server Side Application
Stars: ✭ 16 (-62.79%)
Mutual labels:  create-react-app, universal
Ts Monorepo
Template for setting up a TypeScript monorepo
Stars: ✭ 459 (+967.44%)
Mutual labels:  create-react-app, monorepo
React Native Web Monorepo
Code sharing between iOS, Android & Web using monorepo
Stars: ✭ 697 (+1520.93%)
Mutual labels:  create-react-app, monorepo
Deprecated
🚀 Framework for building universal web app and static website in Vue.js (beta)
Stars: ✭ 858 (+1895.35%)
Mutual labels:  universal
Electron React Boilerplate
Electron and Create React App boilerplate without any complex setup
Stars: ✭ 21 (-51.16%)
Mutual labels:  create-react-app
Isomorph
Shared utilities for browsers and Node.js
Stars: ✭ 9 (-79.07%)
Mutual labels:  universal
3ree
An example universal JS application written with the 3REE stack, React + Redux + RethinkDB + Express. A stack for building apps, front and back end, with just Javascript.
Stars: ✭ 856 (+1890.7%)
Mutual labels:  universal
Express React Boilerplate
🚀🚀🚀 This is a tool that helps programmers create Express & React projects easily base on react-cool-starter.
Stars: ✭ 32 (-25.58%)
Mutual labels:  universal
Angular Webpack Starter
A complete Angular 6 and Webpack 4 starter seed with minimal and full featured branches. Full featured branch includes: Material Design 2 (Bootstrap 4 branch available as well), @ngrx, HMR, DLLs and optional use of Universal for server-side rendering - Supports AOT (offline) compilation, sync and lazy loading. Karma/Protractor for e2e/unit tests.
Stars: ✭ 911 (+2018.6%)
Mutual labels:  universal
Todo React Redux
Todo app with Create-React-App • React-Redux • Firebase • OAuth
Stars: ✭ 942 (+2090.7%)
Mutual labels:  create-react-app
Patternfly React Demo App
DEPRECATED: This project is no longer active. See https://github.com/patternfly/patternfly-react-seed for PF4 demos.
Stars: ✭ 26 (-39.53%)
Mutual labels:  create-react-app

Apployees-Nx

Apployees-Nx is a collection of builders and extensions for the Nx monorepo tooling.

Here's a complete list of builders and tools for NX:

  1. Distributed caching

    • A way to cache output of lint, test, build, etc for apps and libs using Redis, S3, Cassandra, Postgres, or any level-down adapter.
  2. Webserver

    • A Create-React-App Universal/SSR-enabled builder and schematic for NX.
  3. Enhanced Node Builder

    • An enhanced node builder that supports multiple entry points and independent library bundling (i.e. do not bundle selected libraries in the mono-repo during compile so they can be published separately.)

Note that this repository is itself an Nx repository. That is, we bootstrapped the first builder using Nx's original Node Builder, and used our Enhanced Node Builder to build the rest of the builders and tooling in Apployees-Nx.

Distributed Caching

See README.md for level-task-runner.


Webserver -- @apployees-nx/webserver

Overview

The Webserver builder and schematic is a Create-React-App-inspired Universal webserver. It is capable of:

  1. Bundling your express server.

  2. Bundling your client.

  3. Server-side rendering on the client.

  4. Generating a package.json file for you just like @apployees-nx/node below.

Usage: Generate a new webserver project

To use with a new project, start with the application schematic nx g @apployees-nx/webserver:app myApp.

The schematic used when running nx g @apployees-nx/webserver:app myApp will add a few scripts to your package.json:

  • yarn dev-myApp for development. Nx will watch all affected files of myApp and automatically compile and restart myApp.

  • yarn test-myApp runs all the Jest unit tests for myApp.

  • yarn lint-myApp runs the linter on myApp.

  • yarn build-myApp builds myApp for production.

  • yarn build-dev-myApp builds myApp for development, watching for changes (this is the target that yarn dev-myApp waits for before running the compiled output).

Usage: Use with an existing webserver project

To use with an existing project, create a new project first using the above command and change the locations of files in angular/workspace.json to point to your existing project.

Developing @apployees-nx/webserver

The Webserver builder is bootstrapped with apployees-nx/node builder. You will first need to follow the bootstrapping instructions below from apployees-nx/node then follow these instructions.

Here are the steps for developing @apployees-nx/webserver itself:

  1. Run yarn dev-webserver.

  2. Go to the dist folder and run yarn link.

    cd dist/apps/webserver
    yarn link
    
  3. Go to the root directory and link webserver.

    cd ../../..
    yarn link "@apployees-nx/webserver"
    
  4. To build before publishing webserver, simply run yarn build-webserver.

  5. You can now also build the rest of the apps with @apployees-nx/webserver if they require it, or the use the same process to bootstrap another builder if it requires it.

    • There are a few examples that use @apployees-nx/webserver in the examples directory you can play around with. Check out the package.json scripts for how to develop, run, and test them.

Enhanced Node Builder -- @apployees-nx/node

Overview

Similar to the Nx Node Builder, with the following additions:

  • Options:

    • In addition to the main entry-point code, it also supports otherEntries. Each of the otherEntries will become a separate, individually invokeable entry point (i.e., you will be able to do node myOtherEntryPoint.js).
    • Optionally, you can have a package.json file in the root folder of your app, and it will be output. See Output below.
    • Optionally, just like externalLibraries that controls which node_modules should or should not be bundled, you can also define externalLibraries, which indicates which libraries within the mono-repo should or should not be bundled.
    • Check out the build schema for all the options.
  • Output:

    • All the entry points and chunks
    • A package.json file that makes your app an installable npm package.
      • If you have a package.json in the root of your app, this package.json is merged with all the externalDependencies that you specified and output in to the dist folder.
      • If you don't have a package.json file, it will be generated for you.

Usage: Generate a new node project

To use with a new project, start with the application schematic nx g @apployees-nx/node:app myApp.

The schematic used when running nx g @apployees-nx/node:app myApp will add a develop option and a few scripts to your package.json:

  • yarn dev-myApp for development. Nx will watch all affected files of myApp and automatically compile and restart myApp.

  • yarn test-myApp runs all the Jest unit tests for myApp.

  • yarn lint-myApp runs the linter on myApp.

  • yarn build-myApp builds myApp for production.

  • yarn build-dev-myApp builds myApp for development, watching for changes (this is the target that yarn dev-myApp waits for before running the compiled output).

Usage: Use with an existing project

To use with an existing project, simply open up your angular.json or workspace.json and replace @nrwl/node with @apployees-nx/node.

It is recommended that you create a dummy new project using nx g @apployees-nx/node:app myApp just to see what things it adds to workspace.json/angular.json and package.json.

Developing @apployees-nx/node

The Enhanced Node Builder is bootstrapped with Nx's default out-of-the-box Node Builder.

Here are the steps for developing @apployees-nx/node itself:

  1. In the workspace.json file of this repo, change the node project:
    • Change node:architect:build:builder field to the value @nrwl/node:build instead of @apployees-nx/node:build.
    • Change node:architect:build:options:main field to the value apps/node/src/builders/build/build.impl.ts.
    • Change node:architect:build:assets to only have one entry: apps/node/src.
    • Notice that node:architect:build:options:otherEntries exists. This will be ignored by @nrwl/node:build, but will be used by @apployees-nx/node:build later on. So keep this entry.
  2. Open apps/node/src/builders.json and change:
    • builders:build:implementation to be "./main".
  3. In a terminal, run nx build node.
  4. Copy the package.json file from apps/node to dist/apps/node.
  5. cd dist/apps/node
  6. yarn link
  7. Now go back to the root directory (cd ../../..) and run yarn link "@apployees-nx/node".
  8. Go back to angular.json file and revert your changes. That is:
    • You should have @apployees-nx/node:build for the node:architect:build:builder field.
    • You should have apps/node/src/main.ts for the node:architect:build:options:main field.
    • The node:architect:build:assets field should be just as before.
  9. Go back to the apps/node/src/builders.json and revert your changes.
    • That is, builders:build:implementation should be "./builder-build".
  10. In a terminal of the repo root, run nx build node.
    • You have effectively built @apployees-nx/node using an @nrwl/node-builder-compiled version of @apployees-nx/node at this point.
    • Your dist folder now is a publish-able @apployees-nx/node package.
  11. To develop @apployees-nx/node, run yarn dev-node. It will watch for changes and re-compile. Since it is already yarn-linked, you do not need to do anything else.
  12. To build @apployees-nx/node, run yarn build-node.
  13. You can now also build the rest of the apps with @apployees-nx/node if they require it, or the use the same process to bootstrap another builder if it requires it.
    • There are a few examples that use @apployees-nx/node in the examples directory you can play around with. Check out the package.json scripts for how to develop, run, and test them.

Note that an alternative to the above bootstrapping would have been to use the published version of @apployees-nx/node instead of @nrwl/node. That might actually be easier than above...but I wrote the above steps when I didn't even have a published builder initially.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].