@nxext/stencil
Version:
Nx plugin for stenciljs
160 lines (110 loc) • 5.44 kB
Markdown
# @nxext/stencil
[]()
[]()
[]()
## 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.