UNPKG

@nxext/stencil

Version:

Nx plugin for stenciljs

160 lines (110 loc) 5.44 kB
# @nxext/stencil [![License](https://img.shields.io/npm/l/@nxext/stencil.svg?style=flat-square)]() [![nxext windows CI](https://github.com/DominikPieper/nx-extensions/workflows/nxext%20windows%20CI/badge.svg)]() [![nxext macos CI](https://github.com/DominikPieper/nx-extensions/workflows/nxext%20macos%20CI/badge.svg)]() ## Table of Contents - [Features](#features) - [Usage](#usage) - [Project schematics](#project-schematics) - [Build](#build) - [Test](#test) - [Watch](#watch) - [Serve](#serve) - [Storybook](#storybook) - [React and Angular](#react-and-angular) ## Features - Generate Ionic/Pwa project - Generate Stencil app project - Generate library project ## Usage Add this plugin to an Nx workspace: ``` yarn add @nxext/stencil ``` or ``` npm install @nxext/stencil --save ``` ## Project schematics Generate your projects: ``` nx g @nxext/stencil:app my-app nx g @nxext/stencil:lib my-lib ``` each generator is able to generate your template with different style variants. Supported are: ``` --style=css (default) --style=scss ``` You can generate components with: ``` nx g @nxext/stencil:component my-comp ``` or ``` nx g @nxext/stencil:c my-comp ``` If [Storybook](#storybook) is configured a `<my-comp>.stories.ts` is generated. ## Build Build your project: ``` nx build my-app ``` Run commands are passed to the [stencil compiler](https://stenciljs.com/docs/cli). Supported flags are: | Parameter | Type | Default | Description | | ------------ | ------ | ---------------------------------------------------------------------------------------- | ---------------------------- | | --ci | bool | false | | | --debug | bool | false | | | --dev | bool | false | | | --docs | bool | false | | | --port=1234 | number | | | | --serve | bool | false | | | --verbose | bool | false | | | --watch | bool | false | | | --configPath | string | "libs/**_projectname_**/stencil.config.ts" or "apps/**_projectname_**/stencil.config.ts" | relative from workspace root | You can define the path for the stencil.config.ts file like this: The configPath is set in the workspace.json/angular.json for each builder. The default used path can be change there. Support for tests. For unit tests run: ## Test ``` nx test my-app ``` ## Watch Supported flags are: - --watch For e2e test: ``` nx e2e my-app ``` ## Serve Serve with: ``` nx serve my-app ``` Supported flags are: | Parameter | Type | Default | Description | | ------------ | ------- | ---------------------------------------------------------------------------------------- | ---------------------------- | | --debug | bool | false | | | --dev | bool | false | | | --docs | bool | false | | | --port=1234 | number | | | | --verbose | bool | false | | | --configPath | string | "libs/**_projectname_**/stencil.config.ts" or "apps/**_projectname_**/stencil.config.ts" | relative from workspace root | | --open | boolean | true | | ## Storybook You can generate Storybook configuration for an individual project with this command: ``` nx g @nxext/stencil:storybook-configuration my-lib ``` To run the generated Storybook use: ``` nx storybook my-lib ``` _The Storybook startup needs an successful `nx build` cause of the generated loaders to work_ ## React, Angular and Vue You're able to generate angular/react/vue libraries for yout stencil libraries using stencils outputtargets: ``` nx g @nxext/stencil:add-outputtarget my-lib ``` With the `--outputType='react'` or `--outputType='angular'` or `--outputType='vue'` you can define the kind of library.