<!-- Please make sure you have read the submission guidelines before posting an PR --> <!-- https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr --> <!-- Please make sure that your commit message follows our format --> <!-- Example: `fix(nx): must begin with lowercase` --> <!-- If this is a particularly complex change or feature addition, you can request a dedicated Nx release for this pull request branch. Mention someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they will confirm if the PR warrants its own release for testing purposes, and generate it for you if appropriate. --> ## Current Behavior <!-- This is the behavior we have today --> ## Expected Behavior <!-- This is the behavior we should expect with the changes in this PR --> ## Related Issue(s) <!-- Please link the issue being fixed so it gets closed when this is merged. --> Fixes https://github.com/nrwl/nx/issues/28802
86 lines
6.9 KiB
JSON
86 lines
6.9 KiB
JSON
{
|
|
"name": "storybook-configuration",
|
|
"factory": "./src/generators/storybook-configuration/configuration#storybookConfigurationGeneratorInternal",
|
|
"schema": {
|
|
"$schema": "https://json-schema.org/schema",
|
|
"cli": "nx",
|
|
"$id": "NxReactNativeStorybookConfigure",
|
|
"title": "React native Storybook configuration",
|
|
"description": "Set up Storybook for a React-Native app or library.",
|
|
"type": "object",
|
|
"properties": {
|
|
"project": {
|
|
"type": "string",
|
|
"aliases": ["name", "projectName"],
|
|
"description": "Project for which to generate Storybook configuration.",
|
|
"$default": { "$source": "argv", "index": 0 },
|
|
"x-prompt": "For which project do you want to generate Storybook configuration?",
|
|
"x-dropdown": "projects",
|
|
"x-priority": "important"
|
|
},
|
|
"interactionTests": {
|
|
"type": "boolean",
|
|
"description": "Set up Storybook interaction tests.",
|
|
"x-prompt": "Do you want to set up Storybook interaction tests?",
|
|
"x-priority": "important",
|
|
"alias": ["configureTestRunner"],
|
|
"default": true
|
|
},
|
|
"generateStories": {
|
|
"type": "boolean",
|
|
"description": "Automatically generate `*.stories.ts` files for components declared in this project?",
|
|
"x-prompt": "Automatically generate *.stories.ts files for components declared in this project?",
|
|
"default": true,
|
|
"x-priority": "important"
|
|
},
|
|
"configureStaticServe": {
|
|
"type": "boolean",
|
|
"description": "Specifies whether to configure a static file server target for serving storybook. Helpful for speeding up CI build/test times.",
|
|
"x-prompt": "Configure a static file server for the storybook instance?",
|
|
"default": true,
|
|
"x-priority": "important"
|
|
},
|
|
"js": {
|
|
"type": "boolean",
|
|
"description": "Generate JavaScript story files rather than TypeScript story files.",
|
|
"default": false
|
|
},
|
|
"tsConfiguration": {
|
|
"type": "boolean",
|
|
"description": "Configure your project with TypeScript. Generate main.ts and preview.ts files, instead of main.js and preview.js.",
|
|
"default": true
|
|
},
|
|
"linter": {
|
|
"description": "The tool to use for running lint checks.",
|
|
"type": "string",
|
|
"enum": ["eslint"],
|
|
"default": "eslint"
|
|
},
|
|
"ignorePaths": {
|
|
"type": "array",
|
|
"description": "Paths to ignore when looking for components.",
|
|
"items": { "type": "string", "description": "Path to ignore." },
|
|
"default": [
|
|
"*.stories.ts,*.stories.tsx,*.stories.js,*.stories.jsx,*.stories.mdx"
|
|
],
|
|
"examples": [
|
|
"apps/my-app/src/not-stories/**",
|
|
"**/**/src/**/not-stories/**",
|
|
"libs/my-lib/**/*.something.ts",
|
|
"**/**/src/**/*.other.*",
|
|
"libs/my-lib/src/not-stories/**,**/**/src/**/*.other.*,apps/my-app/**/*.something.ts"
|
|
]
|
|
}
|
|
},
|
|
"required": ["project"],
|
|
"examplesFile": "This generator will set up Storybook for your **React Native** project.\n\n```bash\nnx g @nx/react-native:storybook-configuration project-name\n```\n\nWhen running this generator, you will be prompted to provide the following:\n\n- The `name` of the project you want to generate the configuration for.\n- Whether you want to set up [Storybook interaction tests](https://storybook.js.org/docs/react/writing-tests/interaction-testing) (`interactionTests`). If you choose `yes`, a `play` function will be added to your stories, and all the necessary dependencies will be installed. Also, a `test-storybook` target will be generated in your project's `project.json`, with a command to invoke the [Storybook `test-runner`](https://storybook.js.org/docs/react/writing-tests/test-runner). You can read more about this in the [Nx Storybook interaction tests documentation page](/recipes/storybook/storybook-interaction-tests#setup-storybook-interaction-tests)..\n- Whether you want to `generateStories` for the components in your project. If you choose `yes`, a `.stories.ts` file will be generated next to each of your components in your project.\n\nYou must provide a `name` for the generator to work.\n\nBy default, this generator will also set up [Storybook interaction tests](https://storybook.js.org/docs/react/writing-tests/interaction-testing). If you don't want to set up Storybook interaction tests, you can pass the `--interactionTests=false` option, but it's not recommended.\n\nThere are a number of other options available. Let's take a look at some examples.\n\n## Examples\n\n### Generate Storybook configuration\n\n```bash\nnx g @nx/react-native:storybook-configuration ui\n```\n\nThis will generate Storybook configuration for the `ui` project using TypeScript for the Storybook configuration files (the files inside the `.storybook` directory, eg. `.storybook/main.ts`).\n\n### Ignore certain paths when generating stories\n\n```bash\nnx g @nx/react-native:storybook-configuration ui --generateStories=true --ignorePaths=libs/ui/src/not-stories/**,**/**/src/**/*.other.*,apps/my-app/**/*.something.ts\n```\n\nThis will generate a Storybook configuration for the `ui` project and generate stories for all components in the `libs/ui/src/lib` directory, except for the ones in the `libs/ui/src/not-stories` directory, and the ones in the `apps/my-app` directory that end with `.something.ts`, and also for components that their file name is of the pattern `*.other.*`.\n\nThis is useful if you have a project that contains components that are not meant to be used in isolation, but rather as part of a larger component.\n\nBy default, Nx will ignore the following paths:\n\n```text\n*.stories.ts, *.stories.tsx, *.stories.js, *.stories.jsx, *.stories.mdx\n```\n\nbut you can change this behaviour easily, as explained above.\n\n### Generate stories using JavaScript instead of TypeScript\n\n```bash\nnx g @nx/react-native:storybook-configuration ui --generateStories=true --js=true\n```\n\nThis will generate stories for all the components in the `ui` project using JavaScript instead of TypeScript. So, you will have `.stories.js` files next to your components.\n\n### Generate Storybook configuration using JavaScript\n\n```bash\nnx g @nx/react-native:storybook-configuration ui --tsConfiguration=false\n```\n\nBy default, our generator generates TypeScript Storybook configuration files. You can choose to use JavaScript for the Storybook configuration files of your project (the files inside the `.storybook` directory, eg. `.storybook/main.js`).\n",
|
|
"presets": []
|
|
},
|
|
"description": "Set up Storybook for a React Native application or library.",
|
|
"implementation": "/packages/react-native/src/generators/storybook-configuration/configuration#storybookConfigurationGeneratorInternal.ts",
|
|
"aliases": [],
|
|
"hidden": false,
|
|
"path": "/packages/react-native/src/generators/storybook-configuration/schema.json",
|
|
"type": "generator"
|
|
}
|