@nx/vue 17.0.2 → 17.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +9 -4
- package/generators.json +3 -3
- package/index.d.ts +3 -1
- package/index.js +3 -3
- package/migrations.json +11 -1
- package/package.json +8 -9
- package/src/generators/application/application.d.ts +2 -1
- package/src/generators/application/application.js +25 -9
- package/src/generators/application/files/common/src/app/NxWelcome.vue.template +56 -16
- package/src/generators/application/lib/add-e2e.js +13 -4
- package/src/generators/application/lib/add-vite.js +5 -2
- package/src/generators/application/schema.d.ts +2 -1
- package/src/generators/application/schema.json +4 -4
- package/src/generators/component/component.d.ts +3 -3
- package/src/generators/component/lib/utils.d.ts +2 -2
- package/src/generators/component/schema.d.ts +6 -6
- package/src/generators/component/schema.json +8 -18
- package/src/generators/init/init.js +12 -30
- package/src/generators/init/schema.d.ts +2 -4
- package/src/generators/init/schema.json +6 -16
- package/src/generators/library/files/tsconfig.lib.json__tmpl__ +3 -10
- package/src/generators/library/lib/add-vite.js +3 -1
- package/src/generators/library/lib/normalize-options.js +1 -0
- package/src/generators/library/library.d.ts +1 -0
- package/src/generators/library/library.js +16 -6
- package/src/generators/library/schema.d.ts +3 -2
- package/src/generators/library/schema.json +2 -2
- package/src/generators/setup-tailwind/lib/add-tailwind-style-imports.js +7 -0
- package/src/generators/setup-tailwind/schema.json +1 -1
- package/src/generators/stories/schema.json +1 -1
- package/src/generators/stories/stories.js +5 -5
- package/src/generators/storybook-configuration/configuration.d.ts +1 -0
- package/src/generators/storybook-configuration/configuration.js +15 -7
- package/src/generators/storybook-configuration/schema.d.ts +2 -1
- package/src/generators/storybook-configuration/schema.json +4 -4
- package/src/utils/add-linting.d.ts +2 -1
- package/src/utils/add-linting.js +1 -4
- package/src/utils/create-ts-config.js +1 -1
- package/src/utils/ensure-dependencies.d.ts +6 -0
- package/src/utils/ensure-dependencies.js +24 -0
- package/src/utils/versions.d.ts +1 -3
- package/src/utils/versions.js +2 -5
- package/src/generators/application/lib/add-jest.d.ts +0 -5
- package/src/generators/application/lib/add-jest.js +0 -22
- package/src/generators/library/lib/add-jest.d.ts +0 -3
- package/src/generators/library/lib/add-jest.js +0 -23
- package/src/utils/setup-jest.d.ts +0 -4
- package/src/utils/setup-jest.js +0 -96
|
@@ -2,40 +2,22 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.vueInitGenerator = void 0;
|
|
4
4
|
const devkit_1 = require("@nx/devkit");
|
|
5
|
-
const js_1 = require("@nx/js");
|
|
6
5
|
const versions_1 = require("../../utils/versions");
|
|
7
6
|
function updateDependencies(host, schema) {
|
|
8
|
-
(0, devkit_1.removeDependenciesFromPackageJson)(host, ['@nx/vue'], []);
|
|
9
|
-
let dependencies = {
|
|
10
|
-
vue: versions_1.vueVersion,
|
|
11
|
-
};
|
|
12
|
-
let devDependencies = {
|
|
13
|
-
'@nx/vue': versions_1.nxVersion,
|
|
14
|
-
'@vue/tsconfig': versions_1.vueTsconfigVersion,
|
|
15
|
-
'@vue/test-utils': versions_1.vueTestUtilsVersion,
|
|
16
|
-
'@vitejs/plugin-vue': versions_1.vitePluginVueVersion,
|
|
17
|
-
'vue-tsc': versions_1.vueTscVersion,
|
|
18
|
-
};
|
|
19
|
-
if (schema.routing) {
|
|
20
|
-
dependencies['vue-router'] = versions_1.vueRouterVersion;
|
|
21
|
-
}
|
|
22
|
-
if (schema.style === 'scss') {
|
|
23
|
-
devDependencies['sass'] = versions_1.sassVersion;
|
|
24
|
-
}
|
|
25
|
-
else if (schema.style === 'less') {
|
|
26
|
-
devDependencies['less'] = versions_1.lessVersion;
|
|
27
|
-
}
|
|
28
|
-
return (0, devkit_1.addDependenciesToPackageJson)(host, dependencies, devDependencies);
|
|
29
|
-
}
|
|
30
|
-
async function vueInitGenerator(host, schema) {
|
|
31
7
|
const tasks = [];
|
|
32
|
-
tasks.push(
|
|
33
|
-
|
|
34
|
-
tsConfigName: schema.rootProject ? 'tsconfig.json' : 'tsconfig.base.json',
|
|
35
|
-
skipFormat: true,
|
|
36
|
-
}));
|
|
37
|
-
tasks.push(updateDependencies(host, schema));
|
|
8
|
+
tasks.push((0, devkit_1.removeDependenciesFromPackageJson)(host, ['@nx/vue'], []));
|
|
9
|
+
tasks.push((0, devkit_1.addDependenciesToPackageJson)(host, { vue: versions_1.vueVersion }, { '@nx/vue': versions_1.nxVersion }, undefined, schema.keepExistingVersions));
|
|
38
10
|
return (0, devkit_1.runTasksInSerial)(...tasks);
|
|
39
11
|
}
|
|
12
|
+
async function vueInitGenerator(host, schema) {
|
|
13
|
+
let installTask = () => { };
|
|
14
|
+
if (!schema.skipPackageJson) {
|
|
15
|
+
installTask = updateDependencies(host, schema);
|
|
16
|
+
}
|
|
17
|
+
if (!schema.skipFormat) {
|
|
18
|
+
await (0, devkit_1.formatFiles)(host);
|
|
19
|
+
}
|
|
20
|
+
return installTask;
|
|
21
|
+
}
|
|
40
22
|
exports.vueInitGenerator = vueInitGenerator;
|
|
41
23
|
exports.default = vueInitGenerator;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$schema": "
|
|
2
|
+
"$schema": "https://json-schema.org/schema",
|
|
3
3
|
"$id": "NxVueInit",
|
|
4
4
|
"title": "Init Vue Plugin",
|
|
5
5
|
"description": "Initialize a Vue Plugin.",
|
|
@@ -11,26 +11,16 @@
|
|
|
11
11
|
"type": "boolean",
|
|
12
12
|
"default": false
|
|
13
13
|
},
|
|
14
|
-
"
|
|
14
|
+
"skipPackageJson": {
|
|
15
|
+
"description": "Do not add dependencies to `package.json`.",
|
|
15
16
|
"type": "boolean",
|
|
16
|
-
"description": "Use JavaScript instead of TypeScript",
|
|
17
17
|
"default": false
|
|
18
18
|
},
|
|
19
|
-
"
|
|
20
|
-
"description": "Create a project at the root of the workspace",
|
|
19
|
+
"keepExistingVersions": {
|
|
21
20
|
"type": "boolean",
|
|
21
|
+
"x-priority": "internal",
|
|
22
|
+
"description": "Keep existing dependencies versions",
|
|
22
23
|
"default": false
|
|
23
|
-
},
|
|
24
|
-
"routing": {
|
|
25
|
-
"type": "boolean",
|
|
26
|
-
"description": "Generate application with routes.",
|
|
27
|
-
"x-prompt": "Would you like to add Vue Router to this application?",
|
|
28
|
-
"default": false
|
|
29
|
-
},
|
|
30
|
-
"style": {
|
|
31
|
-
"description": "The file extension to be used for style files.",
|
|
32
|
-
"type": "string",
|
|
33
|
-
"default": "css"
|
|
34
24
|
}
|
|
35
25
|
},
|
|
36
26
|
"required": []
|
|
@@ -2,16 +2,7 @@
|
|
|
2
2
|
"extends": "./tsconfig.json",
|
|
3
3
|
"compilerOptions": {
|
|
4
4
|
"outDir": "<%= offsetFromRoot %>dist/out-tsc",
|
|
5
|
-
"baseUrl": ".",
|
|
6
|
-
"paths": {
|
|
7
|
-
"@/*": ["./src/*"]
|
|
8
|
-
},
|
|
9
5
|
"types": [],
|
|
10
|
-
"lib": [
|
|
11
|
-
"ES2016",
|
|
12
|
-
"DOM",
|
|
13
|
-
"DOM.Iterable"
|
|
14
|
-
],
|
|
15
6
|
},
|
|
16
7
|
"exclude": [
|
|
17
8
|
"src/**/__tests__/*",
|
|
@@ -22,7 +13,9 @@
|
|
|
22
13
|
"src/**/*.spec.js",
|
|
23
14
|
"src/**/*.test.js",
|
|
24
15
|
"src/**/*.spec.jsx",
|
|
25
|
-
"src/**/*.test.jsx"
|
|
16
|
+
"src/**/*.test.jsx",
|
|
17
|
+
"src/**/*.spec.vue",
|
|
18
|
+
"src/**/*.test.vue"
|
|
26
19
|
],
|
|
27
20
|
"include": [
|
|
28
21
|
"src/**/*.js",
|
|
@@ -17,6 +17,7 @@ async function addVite(tree, options) {
|
|
|
17
17
|
includeVitest: options.unitTestRunner === 'vitest',
|
|
18
18
|
skipFormat: true,
|
|
19
19
|
testEnvironment: 'jsdom',
|
|
20
|
+
addPlugin: options.addPlugin,
|
|
20
21
|
});
|
|
21
22
|
tasks.push(viteTask);
|
|
22
23
|
createOrEditViteConfig(tree, {
|
|
@@ -36,10 +37,11 @@ async function addVite(tree, options) {
|
|
|
36
37
|
const vitestTask = await vitestGenerator(tree, {
|
|
37
38
|
uiFramework: 'none',
|
|
38
39
|
project: options.name,
|
|
39
|
-
coverageProvider: '
|
|
40
|
+
coverageProvider: 'v8',
|
|
40
41
|
inSourceTests: options.inSourceTests,
|
|
41
42
|
skipFormat: true,
|
|
42
43
|
testEnvironment: 'jsdom',
|
|
44
|
+
addPlugin: options.addPlugin,
|
|
43
45
|
});
|
|
44
46
|
tasks.push(vitestTask);
|
|
45
47
|
createOrEditViteConfig(tree, {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { GeneratorCallback, Tree } from '@nx/devkit';
|
|
2
2
|
import { Schema } from './schema';
|
|
3
3
|
export declare function libraryGenerator(tree: Tree, schema: Schema): Promise<GeneratorCallback>;
|
|
4
|
+
export declare function libraryGeneratorInternal(tree: Tree, schema: Schema): Promise<GeneratorCallback>;
|
|
4
5
|
export default libraryGenerator;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.libraryGenerator = void 0;
|
|
3
|
+
exports.libraryGeneratorInternal = exports.libraryGenerator = void 0;
|
|
4
4
|
const devkit_1 = require("@nx/devkit");
|
|
5
5
|
const js_1 = require("@nx/js");
|
|
6
6
|
const init_1 = require("../init/init");
|
|
@@ -10,8 +10,13 @@ const create_library_files_1 = require("./lib/create-library-files");
|
|
|
10
10
|
const create_ts_config_1 = require("../../utils/create-ts-config");
|
|
11
11
|
const component_1 = require("../component/component");
|
|
12
12
|
const add_vite_1 = require("./lib/add-vite");
|
|
13
|
-
const
|
|
14
|
-
|
|
13
|
+
const ensure_dependencies_1 = require("../../utils/ensure-dependencies");
|
|
14
|
+
const log_show_project_command_1 = require("@nx/devkit/src/utils/log-show-project-command");
|
|
15
|
+
function libraryGenerator(tree, schema) {
|
|
16
|
+
return libraryGeneratorInternal(tree, { addPlugin: false, ...schema });
|
|
17
|
+
}
|
|
18
|
+
exports.libraryGenerator = libraryGenerator;
|
|
19
|
+
async function libraryGeneratorInternal(tree, schema) {
|
|
15
20
|
const tasks = [];
|
|
16
21
|
const options = await (0, normalize_options_1.normalizeOptions)(tree, schema);
|
|
17
22
|
if (options.publishable === true && !schema.importPath) {
|
|
@@ -24,16 +29,18 @@ async function libraryGenerator(tree, schema) {
|
|
|
24
29
|
tags: options.parsedTags,
|
|
25
30
|
targets: {},
|
|
26
31
|
});
|
|
32
|
+
tasks.push(await (0, js_1.initGenerator)(tree, { ...schema, skipFormat: true }));
|
|
27
33
|
tasks.push(await (0, init_1.vueInitGenerator)(tree, {
|
|
28
34
|
...options,
|
|
29
35
|
skipFormat: true,
|
|
30
36
|
}));
|
|
37
|
+
if (!options.skipPackageJson) {
|
|
38
|
+
tasks.push((0, ensure_dependencies_1.ensureDependencies)(tree, options));
|
|
39
|
+
}
|
|
31
40
|
(0, create_ts_config_1.extractTsConfigBase)(tree);
|
|
32
41
|
tasks.push(await (0, add_linting_1.addLinting)(tree, options, 'lib'));
|
|
33
42
|
(0, create_library_files_1.createLibraryFiles)(tree, options);
|
|
34
43
|
tasks.push(await (0, add_vite_1.addVite)(tree, options));
|
|
35
|
-
if (options.unitTestRunner === 'jest')
|
|
36
|
-
tasks.push(await (0, add_jest_1.addJest)(tree, options));
|
|
37
44
|
if (options.component) {
|
|
38
45
|
await (0, component_1.default)(tree, {
|
|
39
46
|
name: options.name,
|
|
@@ -64,7 +71,10 @@ async function libraryGenerator(tree, schema) {
|
|
|
64
71
|
(0, devkit_1.toJS)(tree);
|
|
65
72
|
if (!options.skipFormat)
|
|
66
73
|
await (0, devkit_1.formatFiles)(tree);
|
|
74
|
+
tasks.push(() => {
|
|
75
|
+
(0, log_show_project_command_1.logShowProjectCommand)(options.name);
|
|
76
|
+
});
|
|
67
77
|
return (0, devkit_1.runTasksInSerial)(...tasks);
|
|
68
78
|
}
|
|
69
|
-
exports.
|
|
79
|
+
exports.libraryGeneratorInternal = libraryGeneratorInternal;
|
|
70
80
|
exports.default = libraryGenerator;
|
|
@@ -22,9 +22,10 @@ export interface Schema {
|
|
|
22
22
|
skipTsConfig?: boolean;
|
|
23
23
|
strict?: boolean;
|
|
24
24
|
tags?: string;
|
|
25
|
-
unitTestRunner?: '
|
|
25
|
+
unitTestRunner?: 'vitest' | 'none';
|
|
26
26
|
minimal?: boolean;
|
|
27
27
|
e2eTestRunner?: 'cypress' | 'none';
|
|
28
|
+
addPlugin?: boolean;
|
|
28
29
|
}
|
|
29
30
|
|
|
30
31
|
export interface NormalizedSchema extends Schema {
|
|
@@ -37,5 +38,5 @@ export interface NormalizedSchema extends Schema {
|
|
|
37
38
|
parsedTags: string[];
|
|
38
39
|
appMain?: string;
|
|
39
40
|
appSourceRoot?: string;
|
|
40
|
-
unitTestRunner?: '
|
|
41
|
+
unitTestRunner?: 'vitest' | 'none';
|
|
41
42
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$schema": "
|
|
2
|
+
"$schema": "https://json-schema.org/schema",
|
|
3
3
|
"cli": "nx",
|
|
4
4
|
"$id": "NxVueLibrary",
|
|
5
5
|
"title": "Create a Vue Library",
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
},
|
|
47
47
|
"unitTestRunner": {
|
|
48
48
|
"type": "string",
|
|
49
|
-
"enum": ["vitest", "
|
|
49
|
+
"enum": ["vitest", "none"],
|
|
50
50
|
"description": "Test runner to use for unit tests.",
|
|
51
51
|
"x-prompt": "What unit test runner should be used?"
|
|
52
52
|
},
|
|
@@ -7,12 +7,19 @@ const knownStylesheetLocations = [
|
|
|
7
7
|
'src/styles.css',
|
|
8
8
|
'src/styles.scss',
|
|
9
9
|
'src/styles.less',
|
|
10
|
+
// What we generate for nuxt by default
|
|
11
|
+
'src/assets/css/styles.css',
|
|
12
|
+
'src/assets/css/styles.scss',
|
|
13
|
+
'src/assets/css/styles.less',
|
|
10
14
|
// Other common locations (e.g. what `npm create vue` does)
|
|
11
15
|
'src/assets/styles.css',
|
|
12
16
|
'src/assets/styles.scss',
|
|
13
17
|
'src/assets/styles.less',
|
|
14
18
|
];
|
|
15
19
|
function addTailwindStyleImports(tree, project, _options) {
|
|
20
|
+
if (_options.stylesheet) {
|
|
21
|
+
knownStylesheetLocations.push(_options.stylesheet);
|
|
22
|
+
}
|
|
16
23
|
const stylesPath = knownStylesheetLocations
|
|
17
24
|
.map((file) => (0, devkit_1.joinPathFragments)(project.root, file))
|
|
18
25
|
.find((file) => tree.exists(file));
|
|
@@ -5,13 +5,13 @@ const devkit_1 = require("@nx/devkit");
|
|
|
5
5
|
const path_1 = require("path");
|
|
6
6
|
const versions_1 = require("../../utils/versions");
|
|
7
7
|
const component_story_1 = require("./lib/component-story");
|
|
8
|
-
const
|
|
8
|
+
const minimatch_1 = require("minimatch");
|
|
9
9
|
async function createAllStories(tree, projectName, interactionTests, js, projectConfiguration, ignorePaths) {
|
|
10
|
-
const { sourceRoot
|
|
10
|
+
const { sourceRoot } = projectConfiguration;
|
|
11
11
|
let componentPaths = [];
|
|
12
12
|
const pathsToCheck = [
|
|
13
|
-
(0, devkit_1.joinPathFragments)(sourceRoot, 'app'),
|
|
14
|
-
(0, devkit_1.joinPathFragments)(sourceRoot, 'lib'),
|
|
13
|
+
(0, devkit_1.joinPathFragments)(sourceRoot, 'app'), // Default component folder for apps
|
|
14
|
+
(0, devkit_1.joinPathFragments)(sourceRoot, 'lib'), // Default component folder for libs
|
|
15
15
|
(0, devkit_1.joinPathFragments)(sourceRoot, 'components'), // Additional component folder used by Nuxt
|
|
16
16
|
];
|
|
17
17
|
for (const p of pathsToCheck) {
|
|
@@ -19,7 +19,7 @@ async function createAllStories(tree, projectName, interactionTests, js, project
|
|
|
19
19
|
// Ignore private files starting with "_".
|
|
20
20
|
if ((0, path_1.basename)(path).startsWith('_'))
|
|
21
21
|
return;
|
|
22
|
-
if (ignorePaths?.some((pattern) => minimatch(path, pattern)))
|
|
22
|
+
if (ignorePaths?.some((pattern) => (0, minimatch_1.minimatch)(path, pattern)))
|
|
23
23
|
return;
|
|
24
24
|
if (path.endsWith('.vue')) {
|
|
25
25
|
// Let's see if the .stories.* file exists
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { StorybookConfigureSchema } from './schema';
|
|
2
2
|
import { Tree } from '@nx/devkit';
|
|
3
3
|
export declare function storybookConfigurationGenerator(host: Tree, schema: StorybookConfigureSchema): Promise<import("@nx/devkit").GeneratorCallback>;
|
|
4
|
+
export declare function storybookConfigurationGeneratorInternal(host: Tree, schema: StorybookConfigureSchema): Promise<import("@nx/devkit").GeneratorCallback>;
|
|
4
5
|
export default storybookConfigurationGenerator;
|
|
@@ -1,29 +1,37 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.storybookConfigurationGenerator = void 0;
|
|
3
|
+
exports.storybookConfigurationGeneratorInternal = exports.storybookConfigurationGenerator = void 0;
|
|
4
4
|
const stories_1 = require("../stories/stories");
|
|
5
5
|
const devkit_1 = require("@nx/devkit");
|
|
6
6
|
const versions_1 = require("../../utils/versions");
|
|
7
7
|
async function generateStories(host, schema) {
|
|
8
8
|
await (0, stories_1.default)(host, {
|
|
9
|
-
project: schema.
|
|
9
|
+
project: schema.project,
|
|
10
10
|
js: schema.js,
|
|
11
11
|
ignorePaths: schema.ignorePaths,
|
|
12
12
|
skipFormat: true,
|
|
13
13
|
interactionTests: schema.interactionTests ?? true,
|
|
14
14
|
});
|
|
15
15
|
}
|
|
16
|
-
|
|
16
|
+
function storybookConfigurationGenerator(host, schema) {
|
|
17
|
+
return storybookConfigurationGeneratorInternal(host, {
|
|
18
|
+
addPlugin: false,
|
|
19
|
+
...schema,
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
exports.storybookConfigurationGenerator = storybookConfigurationGenerator;
|
|
23
|
+
async function storybookConfigurationGeneratorInternal(host, schema) {
|
|
17
24
|
const { configurationGenerator } = (0, devkit_1.ensurePackage)('@nx/storybook', versions_1.nxVersion);
|
|
18
25
|
const installTask = await configurationGenerator(host, {
|
|
19
|
-
|
|
26
|
+
project: schema.project,
|
|
20
27
|
js: schema.js,
|
|
21
28
|
linter: schema.linter,
|
|
22
|
-
tsConfiguration: schema.tsConfiguration ?? true,
|
|
23
|
-
interactionTests: schema.interactionTests ?? true,
|
|
29
|
+
tsConfiguration: schema.tsConfiguration ?? true, // default is true
|
|
30
|
+
interactionTests: schema.interactionTests ?? true, // default is true
|
|
24
31
|
configureStaticServe: schema.configureStaticServe,
|
|
25
32
|
uiFramework: '@storybook/vue3-vite',
|
|
26
33
|
skipFormat: true,
|
|
34
|
+
addPlugin: schema.addPlugin,
|
|
27
35
|
});
|
|
28
36
|
if (schema.generateStories) {
|
|
29
37
|
await generateStories(host, schema);
|
|
@@ -31,5 +39,5 @@ async function storybookConfigurationGenerator(host, schema) {
|
|
|
31
39
|
await (0, devkit_1.formatFiles)(host);
|
|
32
40
|
return installTask;
|
|
33
41
|
}
|
|
34
|
-
exports.
|
|
42
|
+
exports.storybookConfigurationGeneratorInternal = storybookConfigurationGeneratorInternal;
|
|
35
43
|
exports.default = storybookConfigurationGenerator;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Linter } from '@nx/eslint';
|
|
2
2
|
|
|
3
3
|
export interface StorybookConfigureSchema {
|
|
4
|
-
|
|
4
|
+
project: string;
|
|
5
5
|
interactionTests?: boolean;
|
|
6
6
|
generateStories?: boolean;
|
|
7
7
|
js?: boolean;
|
|
@@ -9,4 +9,5 @@ export interface StorybookConfigureSchema {
|
|
|
9
9
|
linter?: Linter;
|
|
10
10
|
ignorePaths?: string[];
|
|
11
11
|
configureStaticServe?: boolean;
|
|
12
|
+
addPlugin?: boolean;
|
|
12
13
|
}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$schema": "
|
|
2
|
+
"$schema": "https://json-schema.org/schema",
|
|
3
3
|
"cli": "nx",
|
|
4
4
|
"$id": "NxVueStorybookConfigure",
|
|
5
5
|
"title": "Vue Storybook Configure",
|
|
6
6
|
"description": "Set up Storybook for a Vue project.",
|
|
7
7
|
"type": "object",
|
|
8
8
|
"properties": {
|
|
9
|
-
"
|
|
9
|
+
"project": {
|
|
10
10
|
"type": "string",
|
|
11
|
-
"aliases": ["
|
|
11
|
+
"aliases": ["name", "projectName"],
|
|
12
12
|
"description": "Project for which to generate Storybook configuration.",
|
|
13
13
|
"$default": {
|
|
14
14
|
"$source": "argv",
|
|
@@ -75,6 +75,6 @@
|
|
|
75
75
|
]
|
|
76
76
|
}
|
|
77
77
|
},
|
|
78
|
-
"required": ["
|
|
78
|
+
"required": ["project"],
|
|
79
79
|
"examplesFile": "../../../docs/storybook-configuration-examples.md"
|
|
80
80
|
}
|
|
@@ -4,9 +4,10 @@ export declare function addLinting(host: Tree, options: {
|
|
|
4
4
|
linter: Linter;
|
|
5
5
|
name: string;
|
|
6
6
|
projectRoot: string;
|
|
7
|
-
unitTestRunner?: '
|
|
7
|
+
unitTestRunner?: 'vitest' | 'none';
|
|
8
8
|
setParserOptionsProject?: boolean;
|
|
9
9
|
skipPackageJson?: boolean;
|
|
10
10
|
rootProject?: boolean;
|
|
11
|
+
addPlugin?: boolean;
|
|
11
12
|
}, projectType: 'lib' | 'app'): Promise<import("@nx/devkit").GeneratorCallback>;
|
|
12
13
|
export declare function editEslintConfigFiles(tree: Tree, projectRoot: string, rootProject?: boolean): void;
|
package/src/utils/add-linting.js
CHANGED
|
@@ -6,7 +6,6 @@ const path_1 = require("nx/src/utils/path");
|
|
|
6
6
|
const devkit_1 = require("@nx/devkit");
|
|
7
7
|
const lint_1 = require("./lint");
|
|
8
8
|
const eslint_file_1 = require("@nx/eslint/src/generators/utils/eslint-file");
|
|
9
|
-
const lint_project_1 = require("@nx/eslint/src/generators/lint-project/lint-project");
|
|
10
9
|
async function addLinting(host, options, projectType) {
|
|
11
10
|
if (options.linter === eslint_1.Linter.EsLint) {
|
|
12
11
|
const lintTask = await (0, eslint_1.lintProjectGenerator)(host, {
|
|
@@ -16,12 +15,10 @@ async function addLinting(host, options, projectType) {
|
|
|
16
15
|
(0, path_1.joinPathFragments)(options.projectRoot, `tsconfig.${projectType}.json`),
|
|
17
16
|
],
|
|
18
17
|
unitTestRunner: options.unitTestRunner,
|
|
19
|
-
eslintFilePatterns: [
|
|
20
|
-
(0, lint_project_1.mapLintPattern)(options.projectRoot, '{ts,tsx,js,jsx,vue}', options.rootProject),
|
|
21
|
-
],
|
|
22
18
|
skipFormat: true,
|
|
23
19
|
setParserOptionsProject: options.setParserOptionsProject,
|
|
24
20
|
rootProject: options.rootProject,
|
|
21
|
+
addPlugin: options.addPlugin,
|
|
25
22
|
});
|
|
26
23
|
if ((0, eslint_file_1.isEslintConfigSupported)(host)) {
|
|
27
24
|
(0, eslint_file_1.addExtendsToLintConfig)(host, options.projectRoot, [
|
|
@@ -14,7 +14,7 @@ function createTsConfig(host, projectRoot, type, options, relativePathToRootTsCo
|
|
|
14
14
|
jsxImportSource: 'vue',
|
|
15
15
|
moduleResolution: 'node',
|
|
16
16
|
resolveJsonModule: true,
|
|
17
|
-
verbatimModuleSyntax:
|
|
17
|
+
verbatimModuleSyntax: true,
|
|
18
18
|
},
|
|
19
19
|
files: [],
|
|
20
20
|
include: [],
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type GeneratorCallback, type Tree } from '@nx/devkit';
|
|
2
|
+
export type EnsureDependenciesOptions = {
|
|
3
|
+
routing?: boolean;
|
|
4
|
+
style?: 'scss' | 'less' | 'none' | 'css';
|
|
5
|
+
};
|
|
6
|
+
export declare function ensureDependencies(tree: Tree, options: EnsureDependenciesOptions): GeneratorCallback;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ensureDependencies = void 0;
|
|
4
|
+
const devkit_1 = require("@nx/devkit");
|
|
5
|
+
const versions_1 = require("./versions");
|
|
6
|
+
function ensureDependencies(tree, options) {
|
|
7
|
+
const dependencies = {};
|
|
8
|
+
const devDependencies = {
|
|
9
|
+
'@vue/test-utils': versions_1.vueTestUtilsVersion,
|
|
10
|
+
'@vitejs/plugin-vue': versions_1.vitePluginVueVersion,
|
|
11
|
+
'vue-tsc': versions_1.vueTscVersion,
|
|
12
|
+
};
|
|
13
|
+
if (options.routing) {
|
|
14
|
+
dependencies['vue-router'] = versions_1.vueRouterVersion;
|
|
15
|
+
}
|
|
16
|
+
if (options.style === 'scss') {
|
|
17
|
+
devDependencies['sass'] = versions_1.sassVersion;
|
|
18
|
+
}
|
|
19
|
+
else if (options.style === 'less') {
|
|
20
|
+
devDependencies['less'] = versions_1.lessVersion;
|
|
21
|
+
}
|
|
22
|
+
return (0, devkit_1.addDependenciesToPackageJson)(tree, dependencies, devDependencies);
|
|
23
|
+
}
|
|
24
|
+
exports.ensureDependencies = ensureDependencies;
|
package/src/utils/versions.d.ts
CHANGED
|
@@ -2,10 +2,8 @@ export declare const nxVersion: any;
|
|
|
2
2
|
export declare const vueVersion = "^3.3.4";
|
|
3
3
|
export declare const vueTscVersion = "^1.8.8";
|
|
4
4
|
export declare const vueRouterVersion = "^4.2.4";
|
|
5
|
-
export declare const vueTsconfigVersion = "^0.4.0";
|
|
6
5
|
export declare const vueTestUtilsVersion = "^2.4.1";
|
|
7
|
-
export declare const vitePluginVueVersion = "^4.
|
|
8
|
-
export declare const vueJest3Version = "^29.2.6";
|
|
6
|
+
export declare const vitePluginVueVersion = "^4.5.0";
|
|
9
7
|
export declare const vueEslintConfigPrettierVersion = "7.1.0";
|
|
10
8
|
export declare const vueEslintConfigTypescriptVersion = "^11.0.3";
|
|
11
9
|
export declare const eslintPluginVueVersion = "^9.16.1";
|
package/src/utils/versions.js
CHANGED
|
@@ -1,17 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.lessVersion = exports.sassVersion = exports.autoprefixerVersion = exports.tailwindcssVersion = exports.postcssVersion = exports.eslintPluginVueVersion = exports.vueEslintConfigTypescriptVersion = exports.vueEslintConfigPrettierVersion = exports.
|
|
3
|
+
exports.lessVersion = exports.sassVersion = exports.autoprefixerVersion = exports.tailwindcssVersion = exports.postcssVersion = exports.eslintPluginVueVersion = exports.vueEslintConfigTypescriptVersion = exports.vueEslintConfigPrettierVersion = exports.vitePluginVueVersion = exports.vueTestUtilsVersion = exports.vueRouterVersion = exports.vueTscVersion = exports.vueVersion = exports.nxVersion = void 0;
|
|
4
4
|
exports.nxVersion = require('../../package.json').version;
|
|
5
5
|
// vue core
|
|
6
6
|
exports.vueVersion = '^3.3.4';
|
|
7
7
|
exports.vueTscVersion = '^1.8.8';
|
|
8
8
|
exports.vueRouterVersion = '^4.2.4';
|
|
9
|
-
// build deps
|
|
10
|
-
exports.vueTsconfigVersion = '^0.4.0';
|
|
11
9
|
// test deps
|
|
12
10
|
exports.vueTestUtilsVersion = '^2.4.1';
|
|
13
|
-
exports.vitePluginVueVersion = '^4.
|
|
14
|
-
exports.vueJest3Version = '^29.2.6';
|
|
11
|
+
exports.vitePluginVueVersion = '^4.5.0';
|
|
15
12
|
// linting deps
|
|
16
13
|
exports.vueEslintConfigPrettierVersion = '7.1.0';
|
|
17
14
|
exports.vueEslintConfigTypescriptVersion = '^11.0.3';
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.addJest = void 0;
|
|
4
|
-
const devkit_1 = require("@nx/devkit");
|
|
5
|
-
const versions_1 = require("../../../utils/versions");
|
|
6
|
-
const setup_jest_1 = require("../../../utils/setup-jest");
|
|
7
|
-
async function addJest(tree, options) {
|
|
8
|
-
const tasks = [];
|
|
9
|
-
const { configurationGenerator } = (0, devkit_1.ensurePackage)('@nx/jest', versions_1.nxVersion);
|
|
10
|
-
tasks.push(await configurationGenerator(tree, {
|
|
11
|
-
project: options.name,
|
|
12
|
-
skipFormat: true,
|
|
13
|
-
testEnvironment: 'jsdom',
|
|
14
|
-
compiler: 'babel',
|
|
15
|
-
}));
|
|
16
|
-
(0, setup_jest_1.setupJestProject)(tree, options.projectRoot);
|
|
17
|
-
tasks.push((0, devkit_1.addDependenciesToPackageJson)(tree, {}, {
|
|
18
|
-
'@vue/vue3-jest': versions_1.vueJest3Version,
|
|
19
|
-
}));
|
|
20
|
-
return (0, devkit_1.runTasksInSerial)(...tasks);
|
|
21
|
-
}
|
|
22
|
-
exports.addJest = addJest;
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.addJest = void 0;
|
|
4
|
-
const devkit_1 = require("@nx/devkit");
|
|
5
|
-
const versions_1 = require("../../../utils/versions");
|
|
6
|
-
const setup_jest_1 = require("../../../utils/setup-jest");
|
|
7
|
-
async function addJest(tree, options) {
|
|
8
|
-
const tasks = [];
|
|
9
|
-
const { configurationGenerator } = (0, devkit_1.ensurePackage)('@nx/jest', versions_1.nxVersion);
|
|
10
|
-
const jestTask = await configurationGenerator(tree, {
|
|
11
|
-
project: options.name,
|
|
12
|
-
skipFormat: true,
|
|
13
|
-
testEnvironment: 'jsdom',
|
|
14
|
-
compiler: 'babel',
|
|
15
|
-
});
|
|
16
|
-
tasks.push(jestTask);
|
|
17
|
-
(0, setup_jest_1.setupJestProject)(tree, options.projectRoot);
|
|
18
|
-
tasks.push((0, devkit_1.addDependenciesToPackageJson)(tree, {}, {
|
|
19
|
-
'@vue/vue3-jest': versions_1.vueJest3Version,
|
|
20
|
-
}));
|
|
21
|
-
return (0, devkit_1.runTasksInSerial)(...tasks);
|
|
22
|
-
}
|
|
23
|
-
exports.addJest = addJest;
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { Tree } from '@nx/devkit';
|
|
2
|
-
export declare function setupJestProject(tree: Tree, projectRoot: string): void;
|
|
3
|
-
export declare function writeBabelRcFile(tree: Tree, projectRoot: string): void;
|
|
4
|
-
export declare function updateJestConfigTsFile(tree: Tree, projectRoot: string): void;
|