@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.
Files changed (49) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +9 -4
  3. package/generators.json +3 -3
  4. package/index.d.ts +3 -1
  5. package/index.js +3 -3
  6. package/migrations.json +11 -1
  7. package/package.json +8 -9
  8. package/src/generators/application/application.d.ts +2 -1
  9. package/src/generators/application/application.js +25 -9
  10. package/src/generators/application/files/common/src/app/NxWelcome.vue.template +56 -16
  11. package/src/generators/application/lib/add-e2e.js +13 -4
  12. package/src/generators/application/lib/add-vite.js +5 -2
  13. package/src/generators/application/schema.d.ts +2 -1
  14. package/src/generators/application/schema.json +4 -4
  15. package/src/generators/component/component.d.ts +3 -3
  16. package/src/generators/component/lib/utils.d.ts +2 -2
  17. package/src/generators/component/schema.d.ts +6 -6
  18. package/src/generators/component/schema.json +8 -18
  19. package/src/generators/init/init.js +12 -30
  20. package/src/generators/init/schema.d.ts +2 -4
  21. package/src/generators/init/schema.json +6 -16
  22. package/src/generators/library/files/tsconfig.lib.json__tmpl__ +3 -10
  23. package/src/generators/library/lib/add-vite.js +3 -1
  24. package/src/generators/library/lib/normalize-options.js +1 -0
  25. package/src/generators/library/library.d.ts +1 -0
  26. package/src/generators/library/library.js +16 -6
  27. package/src/generators/library/schema.d.ts +3 -2
  28. package/src/generators/library/schema.json +2 -2
  29. package/src/generators/setup-tailwind/lib/add-tailwind-style-imports.js +7 -0
  30. package/src/generators/setup-tailwind/schema.json +1 -1
  31. package/src/generators/stories/schema.json +1 -1
  32. package/src/generators/stories/stories.js +5 -5
  33. package/src/generators/storybook-configuration/configuration.d.ts +1 -0
  34. package/src/generators/storybook-configuration/configuration.js +15 -7
  35. package/src/generators/storybook-configuration/schema.d.ts +2 -1
  36. package/src/generators/storybook-configuration/schema.json +4 -4
  37. package/src/utils/add-linting.d.ts +2 -1
  38. package/src/utils/add-linting.js +1 -4
  39. package/src/utils/create-ts-config.js +1 -1
  40. package/src/utils/ensure-dependencies.d.ts +6 -0
  41. package/src/utils/ensure-dependencies.js +24 -0
  42. package/src/utils/versions.d.ts +1 -3
  43. package/src/utils/versions.js +2 -5
  44. package/src/generators/application/lib/add-jest.d.ts +0 -5
  45. package/src/generators/application/lib/add-jest.js +0 -22
  46. package/src/generators/library/lib/add-jest.d.ts +0 -3
  47. package/src/generators/library/lib/add-jest.js +0 -23
  48. package/src/utils/setup-jest.d.ts +0 -4
  49. 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(await (0, js_1.initGenerator)(host, {
33
- ...schema,
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,7 +1,5 @@
1
1
  export interface InitSchema {
2
2
  skipFormat?: boolean;
3
- js?: boolean;
4
- rootProject?: boolean;
5
- routing?: boolean;
6
- style?: 'css' | 'scss' | 'less' | 'none';
3
+ skipPackageJson?: boolean;
4
+ keepExistingVersions?: boolean;
7
5
  }
@@ -1,5 +1,5 @@
1
1
  {
2
- "$schema": "http://json-schema.org/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
- "js": {
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
- "rootProject": {
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: 'c8',
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, {
@@ -24,6 +24,7 @@ async function normalizeOptions(host, options) {
24
24
  }
25
25
  }
26
26
  const normalized = {
27
+ addPlugin: process.env.NX_ADD_PLUGINS !== 'false',
27
28
  ...options,
28
29
  bundler,
29
30
  fileName,
@@ -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 add_jest_1 = require("./lib/add-jest");
14
- async function libraryGenerator(tree, schema) {
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.libraryGenerator = libraryGenerator;
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?: 'jest' | 'vitest' | 'none';
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?: 'jest' | 'vitest' | 'none';
41
+ unitTestRunner?: 'vitest' | 'none';
41
42
  }
@@ -1,5 +1,5 @@
1
1
  {
2
- "$schema": "http://json-schema.org/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", "jest", "none"],
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));
@@ -1,5 +1,5 @@
1
1
  {
2
- "$schema": "http://json-schema.org/schema",
2
+ "$schema": "https://json-schema.org/schema",
3
3
  "cli": "nx",
4
4
  "$id": "NxVueTailwindSetupGenerator",
5
5
  "title": "Configures Tailwind CSS for an application or a library.",
@@ -1,5 +1,5 @@
1
1
  {
2
- "$schema": "http://json-schema.org/schema",
2
+ "$schema": "https://json-schema.org/schema",
3
3
  "cli": "nx",
4
4
  "$id": "NxVueStorybookStories",
5
5
  "title": "Generate Vue Storybook stories",
@@ -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 minimatch = require("minimatch");
8
+ const minimatch_1 = require("minimatch");
9
9
  async function createAllStories(tree, projectName, interactionTests, js, projectConfiguration, ignorePaths) {
10
- const { sourceRoot, root } = projectConfiguration;
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.name,
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
- async function storybookConfigurationGenerator(host, schema) {
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
- name: schema.name,
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.storybookConfigurationGenerator = storybookConfigurationGenerator;
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
- name: string;
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": "http://json-schema.org/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
- "name": {
9
+ "project": {
10
10
  "type": "string",
11
- "aliases": ["project", "projectName"],
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": ["name"],
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?: 'jest' | 'vitest' | 'none';
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;
@@ -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: options.unitTestRunner !== 'jest',
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;
@@ -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.3.1";
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";
@@ -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.vueJest3Version = exports.vitePluginVueVersion = exports.vueTestUtilsVersion = exports.vueTsconfigVersion = exports.vueRouterVersion = exports.vueTscVersion = exports.vueVersion = exports.nxVersion = void 0;
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.3.1';
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,5 +0,0 @@
1
- import { GeneratorCallback, Tree } from '@nx/devkit';
2
- export declare function addJest(tree: Tree, options: {
3
- name: string;
4
- projectRoot: string;
5
- }): Promise<GeneratorCallback>;
@@ -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,3 +0,0 @@
1
- import { GeneratorCallback, Tree } from '@nx/devkit';
2
- import { NormalizedSchema } from '../schema';
3
- export declare function addJest(tree: Tree, options: NormalizedSchema): Promise<GeneratorCallback>;
@@ -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;