vike 0.4.150-commit-d0822a3 → 0.4.150-commit-e6c3150

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 (23) hide show
  1. package/dist/cjs/node/plugin/index.js +3 -1
  2. package/dist/cjs/node/plugin/plugins/assertFileEnv.js +107 -0
  3. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles.js +46 -28
  4. package/dist/cjs/node/plugin/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errSwc.js +5 -5
  5. package/dist/cjs/node/plugin/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errSwcBig.js +4 -4
  6. package/dist/cjs/node/plugin/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errVueCss.js +7 -7
  7. package/dist/cjs/node/plugin/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errVueHtml.js +2 -2
  8. package/dist/cjs/node/plugin/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errVueJavascript.js +3 -3
  9. package/dist/cjs/node/plugin/shared/loggerNotProd/errorWithCodeSnippet.js +1 -1
  10. package/dist/cjs/utils/projectInfo.js +1 -1
  11. package/dist/esm/node/plugin/index.js +3 -1
  12. package/dist/esm/node/plugin/plugins/assertFileEnv.d.ts +3 -0
  13. package/dist/esm/node/plugin/plugins/assertFileEnv.js +101 -0
  14. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles.js +47 -29
  15. package/dist/esm/node/plugin/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errSwc.js +5 -5
  16. package/dist/esm/node/plugin/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errSwcBig.js +4 -4
  17. package/dist/esm/node/plugin/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errVueCss.js +7 -7
  18. package/dist/esm/node/plugin/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errVueHtml.js +2 -2
  19. package/dist/esm/node/plugin/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errVueJavascript.js +3 -3
  20. package/dist/esm/node/plugin/shared/loggerNotProd/errorWithCodeSnippet.js +1 -1
  21. package/dist/esm/utils/projectInfo.d.ts +2 -2
  22. package/dist/esm/utils/projectInfo.js +1 -1
  23. package/package.json +2 -2
@@ -27,6 +27,7 @@ const extensionsAssets_js_1 = require("./plugins/extensionsAssets.js");
27
27
  const baseUrls_js_1 = require("./plugins/baseUrls.js");
28
28
  const envVars_js_1 = require("./plugins/envVars.js");
29
29
  const picocolors_1 = __importDefault(require("@brillout/picocolors"));
30
+ const assertFileEnv_js_1 = require("./plugins/assertFileEnv.js");
30
31
  (0, utils_js_2.markEnvAsVite)();
31
32
  // Return as `any` to avoid Plugin type mismatches when there are multiple Vite versions installed
32
33
  function plugin(vikeConfig) {
@@ -48,7 +49,8 @@ function plugin(vikeConfig) {
48
49
  ...(0, index_js_4.importBuild)(),
49
50
  (0, extensionsAssets_js_1.extensionsAssets)(),
50
51
  (0, baseUrls_js_1.baseUrls)(vikeConfig),
51
- (0, envVars_js_1.envVarsPlugin)()
52
+ (0, envVars_js_1.envVarsPlugin)(),
53
+ (0, assertFileEnv_js_1.assertFileEnv)()
52
54
  ];
53
55
  return plugins;
54
56
  }
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.assertFileEnv = void 0;
7
+ const utils_js_1 = require("../utils.js");
8
+ const extractAssetsPlugin_js_1 = require("./extractAssetsPlugin.js");
9
+ const extractExportNamesPlugin_js_1 = require("./extractExportNamesPlugin.js");
10
+ const picocolors_1 = __importDefault(require("@brillout/picocolors"));
11
+ function assertFileEnv() {
12
+ let config;
13
+ let isDev = false;
14
+ return {
15
+ name: 'vike:assertFileEnv',
16
+ // - We need to set `enforce: 'pre'` because, otherwise, the resolvedId() hook of Vite's internal plugin `vite:resolve` is called before and it doesn't seem to call `this.resolve()` which means that the resolveId() hook below is never called.
17
+ // - Vite's `vite:resolve` plugin: https://github.com/vitejs/vite/blob/d649daba7682791178b711d9a3e44a6b5d00990c/packages/vite/src/node/plugins/resolve.ts#L105
18
+ // - It's actually a good thing if the resolveId() hook below is the first one to be called because it doesn't actually resolve any ID, so all other resolveId() hooks will be called as normal. And with `this.resolve()` we get the information we want from all other resolvedId() hooks.
19
+ // - Path aliases are already resolved, even when using `enforce: 'pre'`. For example:
20
+ // ```js
21
+ // // /pages/index/+Page.tsx
22
+ //
23
+ // // The value of `source` is `/home/rom/code/vike/examples/path-aliases/components/Counter` (instead of `#root/components/Counter`)
24
+ // // The value of `importer` is `/home/rom/code/vike/examples/path-aliases/pages/index/+Page.tsx`
25
+ // import { Counter } from '#root/components/Counter'
26
+ // ```
27
+ enforce: 'pre',
28
+ resolveId: {
29
+ /* I don't know why, but path aliases aren't resolved anymore when setting `order: 'pre'`. (In principle, I'd assume that `this.resolve()` would resolve the alias but it doesn't.)
30
+ order: 'pre',
31
+ */
32
+ async handler(source, importer, options) {
33
+ // TODO/v1-release: remove
34
+ if (extractAssetsPlugin_js_1.extractAssetsRE.test(source) || extractExportNamesPlugin_js_1.extractExportNamesRE.test(source))
35
+ return;
36
+ // Seems like Vite is doing some funky stuff here.
37
+ if (importer?.endsWith('.html'))
38
+ return;
39
+ const resolved = await this.resolve(source, importer, {
40
+ // Needed for old Vite plugins: https://vitejs.dev/guide/migration#rollup-4:~:text=For%20Vite%20plugins%2C%20this.resolve%20skipSelf%20option%20is%20now%20true%20by%20default.
41
+ skipSelf: true,
42
+ ...options
43
+ });
44
+ // resolved is null when import path is erroneous and doesn't actually point to a file
45
+ if (!resolved)
46
+ return;
47
+ const modulePath = resolved.id.split('?')[0];
48
+ // `.server.js` and `.client.js` should only apply to user files
49
+ if (modulePath.includes('/node_modules/'))
50
+ return;
51
+ // TODO/v1-release: remove
52
+ if (modulePath.endsWith('.css'))
53
+ return;
54
+ const isServerSide = options?.ssr;
55
+ const envActual = isServerSide ? 'server' : 'client';
56
+ const envExpect = isServerSide ? 'client' : 'server';
57
+ const suffix = `.${envExpect}.`;
58
+ // Everything nonimal
59
+ if (!modulePath.includes(suffix))
60
+ return;
61
+ // Show error message
62
+ let errMsg;
63
+ let modulePathPretty = (0, utils_js_1.getFilePathRelativeToUserRootDir)(modulePath, config.root);
64
+ modulePathPretty = modulePathPretty.replaceAll(suffix, picocolors_1.default.bold(suffix));
65
+ errMsg = `${(0, utils_js_1.capitalizeFirstLetter)(envExpect)}-only module ${modulePathPretty} (https://vike.dev/file-env) imported on the ${envActual}-side`;
66
+ if (importer &&
67
+ // Don't show Vike's virtual modules that import the entry plus files such as /pages/about/+Page.js
68
+ !importer.includes('virtual:vike:') &&
69
+ // I don't know why and who sets importer to '<stdin>' (I guess Vite?)
70
+ importer !== '<stdin>') {
71
+ const importerPath = (0, utils_js_1.getFilePathRelativeToUserRootDir)(importer.split('?')[0], config.root);
72
+ errMsg += ` by ${importerPath}`;
73
+ }
74
+ if (isDev) {
75
+ errMsg += ' (building your app for production will be prevented and an error will be thrown)';
76
+ }
77
+ errMsg += '.';
78
+ if (isDev) {
79
+ (0, utils_js_1.assertWarning)(false, errMsg, { onlyOnce: true });
80
+ }
81
+ else {
82
+ (0, utils_js_1.assertUsage)(false, errMsg);
83
+ }
84
+ }
85
+ },
86
+ configResolved(config_) {
87
+ config = config_;
88
+ },
89
+ configureServer() {
90
+ isDev = true;
91
+ },
92
+ // Ensure this plugin works
93
+ transform(_code, id, options) {
94
+ if (isDev)
95
+ return;
96
+ // TODO/v1-release: remove
97
+ if (extractAssetsPlugin_js_1.extractAssetsRE.test(id) || extractExportNamesPlugin_js_1.extractExportNamesRE.test(id))
98
+ return;
99
+ if (id.split('?')[0].endsWith('.css'))
100
+ return;
101
+ const isServerSide = options?.ssr;
102
+ const envWrong = isServerSide ? 'client' : 'server';
103
+ (0, utils_js_1.assert)(!id.includes(`.${envWrong}.`));
104
+ }
105
+ };
106
+ }
107
+ exports.assertFileEnv = assertFileEnv;
@@ -10,22 +10,23 @@ const fast_glob_1 = __importDefault(require("fast-glob"));
10
10
  const child_process_1 = require("child_process");
11
11
  const util_1 = require("util");
12
12
  const execA = (0, util_1.promisify)(child_process_1.exec);
13
+ const globalObject = (0, utils_js_1.getGlobalObject)('crawlPlusFiles.ts', {
14
+ gitIsMissing: false
15
+ });
13
16
  async function crawlPlusFiles(userRootDir, outDirAbsoluteFilesystem, isDev) {
14
17
  (0, utils_js_1.assertPosixPath)(userRootDir);
15
18
  (0, utils_js_1.assertPosixPath)(outDirAbsoluteFilesystem);
16
- // Vike prepends userRootDir without resolving, e.g. outDirRelativeFromUserRootDir can be /home/rom/my-monorepo/my-app/../my-build/dist/ while userRootDir is /home/rom/my-monorepo/my-app/
17
- (0, utils_js_1.assert)(outDirAbsoluteFilesystem.startsWith(userRootDir));
18
19
  let outDirRelativeFromUserRootDir = path_1.default.posix.relative(userRootDir, outDirAbsoluteFilesystem);
19
20
  if (outDirRelativeFromUserRootDir.startsWith('../')) {
20
21
  // config.outDir is outside of config.root => it's going to be ignored anyways
21
22
  outDirRelativeFromUserRootDir = null;
22
23
  }
23
24
  (0, utils_js_1.assert)(outDirRelativeFromUserRootDir === null || !outDirRelativeFromUserRootDir.startsWith('.'));
24
- const timeBase = new Date().getTime();
25
+ const timeBefore = new Date().getTime();
25
26
  let files = [];
26
27
  const res = await gitLsFiles(userRootDir, outDirRelativeFromUserRootDir);
27
28
  if (res &&
28
- // Fallback to fast-glob for users that dynamically generate plus files (we assume generetad plus files to be skipped because they are usually included in .gitignore)
29
+ // Fallback to fast-glob for users that dynamically generate plus files. (Assuming all (generetad) plus files to be skipped because users usually included them in `.gitignore`.)
29
30
  res.length > 0) {
30
31
  files = res;
31
32
  }
@@ -33,10 +34,11 @@ async function crawlPlusFiles(userRootDir, outDirAbsoluteFilesystem, isDev) {
33
34
  files = await fastGlob(userRootDir, outDirRelativeFromUserRootDir);
34
35
  }
35
36
  {
36
- const time = new Date().getTime() - timeBase;
37
+ const timeAfter = new Date().getTime();
38
+ const timeSpent = timeAfter - timeBefore;
37
39
  if (isDev) {
38
- // We only warn in dev, because while building it's expected to take a long time as fast-glob is competing for resources with other tasks
39
- (0, utils_js_1.assertWarning)(time < 2 * 1000, `Crawling your user files took an unexpected long time (${time}ms). Create a new issue on Vike's GitHub.`, {
40
+ // We only warn in dev, because while building it's expected to take a long time as crawling is competing for resources with other tasks.
41
+ (0, utils_js_1.assertWarning)(timeSpent < 2 * 1000, `Crawling your user files took an unexpected long time (${timeSpent}ms). Create a new issue on Vike's GitHub.`, {
40
42
  onlyOnce: 'slow-page-files-search'
41
43
  });
42
44
  }
@@ -56,37 +58,54 @@ async function crawlPlusFiles(userRootDir, outDirAbsoluteFilesystem, isDev) {
56
58
  exports.crawlPlusFiles = crawlPlusFiles;
57
59
  // Same as fastGlob() but using `$ git ls-files`
58
60
  async function gitLsFiles(userRootDir, outDirRelativeFromUserRootDir) {
59
- if (!(await isUsingGit(userRootDir)))
61
+ if (globalObject.gitIsMissing)
60
62
  return null;
63
+ const ignoreAsPatterns = getIgnoreAsPatterns(outDirRelativeFromUserRootDir);
64
+ const ignoreAsFilterFn = getIgnoreAsFilterFn(outDirRelativeFromUserRootDir);
61
65
  const cmd = [
62
66
  'git ls-files',
63
67
  ...utils_js_1.scriptFileExtensionList.map((ext) => `"**/+*.${ext}"`),
64
- ...getIgnorePatterns(outDirRelativeFromUserRootDir).map((pattern) => `--exclude="${pattern}"`),
68
+ ...ignoreAsPatterns.map((pattern) => `--exclude="${pattern}"`),
65
69
  // --others lists untracked files only (but using .gitignore because --exclude-standard)
66
70
  // --cached adds the tracked files to the output
67
71
  '--others --cached --exclude-standard'
68
72
  ].join(' ');
69
- let files = await runCmd(cmd, userRootDir);
70
- files = files.filter(
71
- // We have to repeat the same exclusion logic here because the `git ls-files` option --exclude only applies to untracked files. (We use --exclude only to speed up the command.)
72
- (file) => getIgnoreFilter(file, outDirRelativeFromUserRootDir));
73
- // Remove tracked but deleted files
74
- const filesIgnore = await runCmd('git ls-files --deleted', userRootDir);
75
- files = files.filter((file) => !filesIgnore.includes(file));
73
+ let files;
74
+ let filesDeleted;
75
+ try {
76
+ ;
77
+ [files, filesDeleted] = await Promise.all([
78
+ // Main command
79
+ runCmd(cmd, userRootDir),
80
+ // Get tracked by deleted files
81
+ runCmd('git ls-files --deleted', userRootDir)
82
+ ]);
83
+ }
84
+ catch (err) {
85
+ if (await isGitMissing(userRootDir)) {
86
+ globalObject.gitIsMissing = true;
87
+ return null;
88
+ }
89
+ throw err;
90
+ }
91
+ files = files
92
+ // We have to repeat the same exclusion logic here because the `git ls-files` option --exclude only applies to untracked files. (We use --exclude only to speed up the command.)
93
+ .filter(ignoreAsFilterFn)
94
+ .filter((file) => !filesDeleted.includes(file));
76
95
  return files;
77
96
  }
78
97
  // Same as gitLsFiles() but using fast-glob
79
98
  async function fastGlob(userRootDir, outDirRelativeFromUserRootDir) {
80
99
  const files = await (0, fast_glob_1.default)(`**/+*.${utils_js_1.scriptFileExtensions}`, {
81
- ignore: getIgnorePatterns(outDirRelativeFromUserRootDir),
100
+ ignore: getIgnoreAsPatterns(outDirRelativeFromUserRootDir),
82
101
  cwd: userRootDir,
83
102
  dot: false
84
103
  });
85
104
  return files;
86
105
  }
87
106
  // Same as getIgnoreFilter() but as glob pattern
88
- function getIgnorePatterns(outDirRelativeFromUserRootDir) {
89
- const ignorePatterns = [
107
+ function getIgnoreAsPatterns(outDirRelativeFromUserRootDir) {
108
+ const ignoreAsPatterns = [
90
109
  '**/node_modules/**',
91
110
  // Allow:
92
111
  // ```
@@ -97,31 +116,30 @@ function getIgnorePatterns(outDirRelativeFromUserRootDir) {
97
116
  ];
98
117
  if (outDirRelativeFromUserRootDir) {
99
118
  (0, utils_js_1.assert)(!outDirRelativeFromUserRootDir.startsWith('/'));
100
- ignorePatterns.push(`${outDirRelativeFromUserRootDir}/**`);
119
+ ignoreAsPatterns.push(`${outDirRelativeFromUserRootDir}/**`);
101
120
  }
102
- return ignorePatterns;
121
+ return ignoreAsPatterns;
103
122
  }
104
123
  // Same as getIgnorePatterns() but for Array.filter()
105
- function getIgnoreFilter(file, outDirRelativeFromUserRootDir) {
106
- (0, utils_js_1.assert)(!file.startsWith('/'));
124
+ function getIgnoreAsFilterFn(outDirRelativeFromUserRootDir) {
107
125
  (0, utils_js_1.assert)(outDirRelativeFromUserRootDir === null || !outDirRelativeFromUserRootDir.startsWith('/'));
108
- return (!file.includes('node_modules/') &&
126
+ return (file) => !file.includes('node_modules/') &&
109
127
  !file.includes('.telefunc.') &&
110
- (!outDirRelativeFromUserRootDir || !file.startsWith(`${outDirRelativeFromUserRootDir}/`)));
128
+ (outDirRelativeFromUserRootDir === null || !file.startsWith(`${outDirRelativeFromUserRootDir}/`));
111
129
  }
112
130
  // Whether Git is installed and whether userRootDir is inside a Git repository
113
- async function isUsingGit(userRootDir) {
131
+ async function isGitMissing(userRootDir) {
114
132
  let res;
115
133
  try {
116
134
  res = await execA('git rev-parse --is-inside-work-tree', { cwd: userRootDir });
117
135
  }
118
136
  catch {
119
- return false;
137
+ return true;
120
138
  }
121
139
  const { stdout, stderr } = res;
122
140
  (0, utils_js_1.assert)(stderr.toString().trim() === '');
123
141
  (0, utils_js_1.assert)(stdout.toString().trim() === 'true');
124
- return true;
142
+ return false;
125
143
  }
126
144
  async function runCmd(cmd, cwd) {
127
145
  const res = await execA(cmd, { cwd });
@@ -2,18 +2,18 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.errSwc = void 0;
4
4
  exports.errSwc = {
5
- stack: "Error: \n \u001b[38;2;255;30;30m×\u001b[0m Expected ';', '}' or <eof>\n ╭─[\u001b[38;2;92;157;255;1;4m/home/rom/code/vike/examples/react-full-v1/pages/hello/+Page.tsx\u001b[0m:1:1]\n \u001b[2m1\u001b[0m │ export default Page\n \u001b[2m2\u001b[0m │ \n \u001b[2m3\u001b[0m │ impeort React from 'react'\n · \u001b[38;2;246;87;248m───┬───\u001b[0m\u001b[38;2;30;201;212m ─────\u001b[0m\n · \u001b[38;2;246;87;248m╰── \u001b[38;2;246;87;248mThis is the expression part of an expression statement\u001b[0m\u001b[0m\n \u001b[2m4\u001b[0m │ \n \u001b[2m5\u001b[0m │ function Page({ name }: { name: string }) {\n \u001b[2m6\u001b[0m │ return (\n ╰────\n\n\nCaused by:\n Syntax Error",
5
+ stack: "Error: \n \u001b[38;2;255;30;30m×\u001b[0m Expected ';', '}' or <eof>\n ╭─[\u001b[38;2;92;157;255;1;4m/home/rom/code/vike/examples/react-full/pages/hello/+Page.tsx\u001b[0m:1:1]\n \u001b[2m1\u001b[0m │ export default Page\n \u001b[2m2\u001b[0m │ \n \u001b[2m3\u001b[0m │ impeort React from 'react'\n · \u001b[38;2;246;87;248m───┬───\u001b[0m\u001b[38;2;30;201;212m ─────\u001b[0m\n · \u001b[38;2;246;87;248m╰── \u001b[38;2;246;87;248mThis is the expression part of an expression statement\u001b[0m\u001b[0m\n \u001b[2m4\u001b[0m │ \n \u001b[2m5\u001b[0m │ function Page({ name }: { name: string }) {\n \u001b[2m6\u001b[0m │ return (\n ╰────\n\n\nCaused by:\n Syntax Error",
6
6
  code: 'GenericFailure',
7
7
  line: '1',
8
8
  column: '1',
9
9
  plugin: 'vite:react-swc',
10
- id: '/home/rom/code/vike/examples/react-full-v1/pages/hello/+Page.tsx',
10
+ id: '/home/rom/code/vike/examples/react-full/pages/hello/+Page.tsx',
11
11
  pluginCode: 'export default Page\n\nimpeort React from \'react\'\n\nfunction Page({ name }: { name: string }) {\n return (\n <>\n <h1>Hello</h1>\n <p>\n Hi <b>{name}</b>.\n </p>\n <ul>\n <li>\n <a href="/hello/eli">/hello/eli</a>\n </li>\n <li>\n <a href="/hello/jon">/hello/jon</a>\n </li>\n </ul>\n <p>\n Parameterized routes can be defined by exporting a route string in <code>*.page.route.js</code>.\n </p>\n </>\n )\n}\n',
12
12
  loc: {
13
- file: '/home/rom/code/vike/examples/react-full-v1/pages/hello/+Page.tsx',
13
+ file: '/home/rom/code/vike/examples/react-full/pages/hello/+Page.tsx',
14
14
  line: '1',
15
15
  column: '1'
16
16
  },
17
- frame: '1 | /home/rom/code/vike/examples/react-full-v1/pages/hello/+Page.tsx\n | ^',
18
- message: "\n \u001b[38;2;255;30;30m×\u001b[0m Expected ';', '}' or <eof>\n ╭─[\u001b[38;2;92;157;255;1;4m/home/rom/code/vike/examples/react-full-v1/pages/hello/+Page.tsx\u001b[0m:1:1]\n \u001b[2m1\u001b[0m │ export default Page\n \u001b[2m2\u001b[0m │ \n \u001b[2m3\u001b[0m │ impeort React from 'react'\n · \u001b[38;2;246;87;248m───┬───\u001b[0m\u001b[38;2;30;201;212m ─────\u001b[0m\n · \u001b[38;2;246;87;248m╰── \u001b[38;2;246;87;248mThis is the expression part of an expression statement\u001b[0m\u001b[0m\n \u001b[2m4\u001b[0m │ \n \u001b[2m5\u001b[0m │ function Page({ name }: { name: string }) {\n \u001b[2m6\u001b[0m │ return (\n ╰────\n\n\nCaused by:\n Syntax Error"
17
+ frame: '1 | /home/rom/code/vike/examples/react-full/pages/hello/+Page.tsx\n | ^',
18
+ message: "\n \u001b[38;2;255;30;30m×\u001b[0m Expected ';', '}' or <eof>\n ╭─[\u001b[38;2;92;157;255;1;4m/home/rom/code/vike/examples/react-full/pages/hello/+Page.tsx\u001b[0m:1:1]\n \u001b[2m1\u001b[0m │ export default Page\n \u001b[2m2\u001b[0m │ \n \u001b[2m3\u001b[0m │ impeort React from 'react'\n · \u001b[38;2;246;87;248m───┬───\u001b[0m\u001b[38;2;30;201;212m ─────\u001b[0m\n · \u001b[38;2;246;87;248m╰── \u001b[38;2;246;87;248mThis is the expression part of an expression statement\u001b[0m\u001b[0m\n \u001b[2m4\u001b[0m │ \n \u001b[2m5\u001b[0m │ function Page({ name }: { name: string }) {\n \u001b[2m6\u001b[0m │ return (\n ╰────\n\n\nCaused by:\n Syntax Error"
19
19
  };
@@ -6,14 +6,14 @@ exports.errSwcBig = {
6
6
  line: '6',
7
7
  column: '1',
8
8
  plugin: 'vite:react-swc',
9
- id: '/home/rom/code/vike/examples/react-full-v1/pages/index/+Page.tsx',
9
+ id: '/home/rom/code/vike/examples/react-full/pages/index/+Page.tsx',
10
10
  pluginCode: "export default Page\n\nimport React from 'react'\nimport { navigate } from 'vike/client/router'\nimport { Counter } from '../../components/Counter'\n\nfunction Page() {\n return (\n <>\n <h1>\n Welcome to Vike\n <h1>\n This page is:\n <ul>\n <li>Rendered to HTML.</li>\n <li>\n Interactive. <Counter />\n </li>\n </ul>\n <p>\n <button\n onClick={() => {\n const randomIndex = Math.floor(Math.random() * 3)\n navigate(['/markdown', '/star-wars', '/hello/alice.js'][randomIndex])\n }}\n >\n Random Page\n </button>\n </p>\n </>\n )\n}\n",
11
11
  loc: {
12
- file: '/home/rom/code/vike/examples/react-full-v1/pages/index/+Page.tsx',
12
+ file: '/home/rom/code/vike/examples/react-full/pages/index/+Page.tsx',
13
13
  line: '6',
14
14
  column: '1'
15
15
  },
16
16
  frame: '',
17
- message: "\n \u001b[38;2;255;30;30m×\u001b[0m Expression expected\n ╭─[\u001b[38;2;92;157;255;1;4m/home/rom/code/vike/examples/react-full-v1/pages/index/+Page.tsx\u001b[0m:6:1]\n \u001b[2m 6\u001b[0m │ \n \u001b[2m 7\u001b[0m │ function Page() {\n \u001b[2m 8\u001b[0m │ return (\n \u001b[2m 9\u001b[0m │ <>\n · \u001b[38;2;246;87;248m ─\u001b[0m\n \u001b[2m10\u001b[0m │ <h1>\n \u001b[2m11\u001b[0m │ Welcome to Vike\n \u001b[2m12\u001b[0m │ <h1>\n ╰────\n\n \u001b[38;2;255;30;30m×\u001b[0m Unexpected token. Did you mean `{'}'}` or `&rbrace;`?\n ╭─[\u001b[38;2;92;157;255;1;4m/home/rom/code/vike/examples/react-full-v1/pages/index/+Page.tsx\u001b[0m:29:1]\n \u001b[2m29\u001b[0m │ </p>\n \u001b[2m30\u001b[0m │ </>\n \u001b[2m31\u001b[0m │ )\n \u001b[2m32\u001b[0m │ }\n · \u001b[38;2;246;87;248m▲\u001b[0m\n ╰────\n\n \u001b[38;2;255;30;30m×\u001b[0m Unterminated JSX contents\n ╭─[\u001b[38;2;92;157;255;1;4m/home/rom/code/vike/examples/react-full-v1/pages/index/+Page.tsx\u001b[0m:27:1]\n \u001b[2m27\u001b[0m │ Random Page\n \u001b[2m28\u001b[0m │ </button>\n \u001b[2m29\u001b[0m │ </p>\n \u001b[2m30\u001b[0m │ \u001b[38;2;246;87;248m╭\u001b[0m\u001b[38;2;246;87;248m─\u001b[0m\u001b[38;2;246;87;248m▶\u001b[0m </>\n \u001b[2m31\u001b[0m │ \u001b[38;2;246;87;248m│\u001b[0m )\n \u001b[2m32\u001b[0m │ \u001b[38;2;246;87;248m╰\u001b[0m\u001b[38;2;246;87;248m─\u001b[0m\u001b[38;2;246;87;248m▶\u001b[0m }\n ╰────\n\n\nCaused by:\n Syntax Error",
18
- stack: "Error: \n \u001b[38;2;255;30;30m×\u001b[0m Expression expected\n ╭─[\u001b[38;2;92;157;255;1;4m/home/rom/code/vike/examples/react-full-v1/pages/index/+Page.tsx\u001b[0m:6:1]\n \u001b[2m 6\u001b[0m │ \n \u001b[2m 7\u001b[0m │ function Page() {\n \u001b[2m 8\u001b[0m │ return (\n \u001b[2m 9\u001b[0m │ <>\n · \u001b[38;2;246;87;248m ─\u001b[0m\n \u001b[2m10\u001b[0m │ <h1>\n \u001b[2m11\u001b[0m │ Welcome to Vike\n \u001b[2m12\u001b[0m │ <h1>\n ╰────\n\n \u001b[38;2;255;30;30m×\u001b[0m Unexpected token. Did you mean `{'}'}` or `&rbrace;`?\n ╭─[\u001b[38;2;92;157;255;1;4m/home/rom/code/vike/examples/react-full-v1/pages/index/+Page.tsx\u001b[0m:29:1]\n \u001b[2m29\u001b[0m │ </p>\n \u001b[2m30\u001b[0m │ </>\n \u001b[2m31\u001b[0m │ )\n \u001b[2m32\u001b[0m │ }\n · \u001b[38;2;246;87;248m▲\u001b[0m\n ╰────\n\n \u001b[38;2;255;30;30m×\u001b[0m Unterminated JSX contents\n ╭─[\u001b[38;2;92;157;255;1;4m/home/rom/code/vike/examples/react-full-v1/pages/index/+Page.tsx\u001b[0m:27:1]\n \u001b[2m27\u001b[0m │ Random Page\n \u001b[2m28\u001b[0m │ </button>\n \u001b[2m29\u001b[0m │ </p>\n \u001b[2m30\u001b[0m │ \u001b[38;2;246;87;248m╭\u001b[0m\u001b[38;2;246;87;248m─\u001b[0m\u001b[38;2;246;87;248m▶\u001b[0m </>\n \u001b[2m31\u001b[0m │ \u001b[38;2;246;87;248m│\u001b[0m )\n \u001b[2m32\u001b[0m │ \u001b[38;2;246;87;248m╰\u001b[0m\u001b[38;2;246;87;248m─\u001b[0m\u001b[38;2;246;87;248m▶\u001b[0m }\n ╰────\n\n\nCaused by:\n Syntax Error"
17
+ message: "\n \u001b[38;2;255;30;30m×\u001b[0m Expression expected\n ╭─[\u001b[38;2;92;157;255;1;4m/home/rom/code/vike/examples/react-full/pages/index/+Page.tsx\u001b[0m:6:1]\n \u001b[2m 6\u001b[0m │ \n \u001b[2m 7\u001b[0m │ function Page() {\n \u001b[2m 8\u001b[0m │ return (\n \u001b[2m 9\u001b[0m │ <>\n · \u001b[38;2;246;87;248m ─\u001b[0m\n \u001b[2m10\u001b[0m │ <h1>\n \u001b[2m11\u001b[0m │ Welcome to Vike\n \u001b[2m12\u001b[0m │ <h1>\n ╰────\n\n \u001b[38;2;255;30;30m×\u001b[0m Unexpected token. Did you mean `{'}'}` or `&rbrace;`?\n ╭─[\u001b[38;2;92;157;255;1;4m/home/rom/code/vike/examples/react-full/pages/index/+Page.tsx\u001b[0m:29:1]\n \u001b[2m29\u001b[0m │ </p>\n \u001b[2m30\u001b[0m │ </>\n \u001b[2m31\u001b[0m │ )\n \u001b[2m32\u001b[0m │ }\n · \u001b[38;2;246;87;248m▲\u001b[0m\n ╰────\n\n \u001b[38;2;255;30;30m×\u001b[0m Unterminated JSX contents\n ╭─[\u001b[38;2;92;157;255;1;4m/home/rom/code/vike/examples/react-full/pages/index/+Page.tsx\u001b[0m:27:1]\n \u001b[2m27\u001b[0m │ Random Page\n \u001b[2m28\u001b[0m │ </button>\n \u001b[2m29\u001b[0m │ </p>\n \u001b[2m30\u001b[0m │ \u001b[38;2;246;87;248m╭\u001b[0m\u001b[38;2;246;87;248m─\u001b[0m\u001b[38;2;246;87;248m▶\u001b[0m </>\n \u001b[2m31\u001b[0m │ \u001b[38;2;246;87;248m│\u001b[0m )\n \u001b[2m32\u001b[0m │ \u001b[38;2;246;87;248m╰\u001b[0m\u001b[38;2;246;87;248m─\u001b[0m\u001b[38;2;246;87;248m▶\u001b[0m }\n ╰────\n\n\nCaused by:\n Syntax Error",
18
+ stack: "Error: \n \u001b[38;2;255;30;30m×\u001b[0m Expression expected\n ╭─[\u001b[38;2;92;157;255;1;4m/home/rom/code/vike/examples/react-full/pages/index/+Page.tsx\u001b[0m:6:1]\n \u001b[2m 6\u001b[0m │ \n \u001b[2m 7\u001b[0m │ function Page() {\n \u001b[2m 8\u001b[0m │ return (\n \u001b[2m 9\u001b[0m │ <>\n · \u001b[38;2;246;87;248m ─\u001b[0m\n \u001b[2m10\u001b[0m │ <h1>\n \u001b[2m11\u001b[0m │ Welcome to Vike\n \u001b[2m12\u001b[0m │ <h1>\n ╰────\n\n \u001b[38;2;255;30;30m×\u001b[0m Unexpected token. Did you mean `{'}'}` or `&rbrace;`?\n ╭─[\u001b[38;2;92;157;255;1;4m/home/rom/code/vike/examples/react-full/pages/index/+Page.tsx\u001b[0m:29:1]\n \u001b[2m29\u001b[0m │ </p>\n \u001b[2m30\u001b[0m │ </>\n \u001b[2m31\u001b[0m │ )\n \u001b[2m32\u001b[0m │ }\n · \u001b[38;2;246;87;248m▲\u001b[0m\n ╰────\n\n \u001b[38;2;255;30;30m×\u001b[0m Unterminated JSX contents\n ╭─[\u001b[38;2;92;157;255;1;4m/home/rom/code/vike/examples/react-full/pages/index/+Page.tsx\u001b[0m:27:1]\n \u001b[2m27\u001b[0m │ Random Page\n \u001b[2m28\u001b[0m │ </button>\n \u001b[2m29\u001b[0m │ </p>\n \u001b[2m30\u001b[0m │ \u001b[38;2;246;87;248m╭\u001b[0m\u001b[38;2;246;87;248m─\u001b[0m\u001b[38;2;246;87;248m▶\u001b[0m </>\n \u001b[2m31\u001b[0m │ \u001b[38;2;246;87;248m│\u001b[0m )\n \u001b[2m32\u001b[0m │ \u001b[38;2;246;87;248m╰\u001b[0m\u001b[38;2;246;87;248m─\u001b[0m\u001b[38;2;246;87;248m▶\u001b[0m }\n ╰────\n\n\nCaused by:\n Syntax Error"
19
19
  };
@@ -4,7 +4,7 @@ exports.errVueCss = void 0;
4
4
  exports.errVueCss = {
5
5
  name: 'CssSyntaxError',
6
6
  reason: 'Unexpected }',
7
- file: '/home/rom/code/vike/examples/vue-full-v1/renderer/PageShell.vue',
7
+ file: '/home/rom/code/vike/examples/vue-full/renderer/PageShell.vue',
8
8
  source: '\n.layout {\n display: flex;\n max-width: 900px;\n margin: auto;\n}}\n.content {\n padding: 20px;\n padding-bottom: 50px;\n min-height: 100vh;\n}\n.navigation {\n padding: 20px;\n flex-shrink: 0;\n display: flex;\n flex-direction: column;\n line-height: 1.8em;\n border-right: 2px solid #eee;\n}\n.logo {\n margin-top: 20px;\n margin-bottom: 10px;\n}\n.content {\n transition: opacity 0.1s ease-in;\n}\n.content.page-transition {\n opacity: 0;\n}\n',
9
9
  line: 6,
10
10
  column: 2,
@@ -16,14 +16,14 @@ exports.errVueCss = {
16
16
  endLine: 6,
17
17
  endColumn: 3,
18
18
  source: '\n.layout {\n display: flex;\n max-width: 900px;\n margin: auto;\n}}\n.content {\n padding: 20px;\n padding-bottom: 50px;\n min-height: 100vh;\n}\n.navigation {\n padding: 20px;\n flex-shrink: 0;\n display: flex;\n flex-direction: column;\n line-height: 1.8em;\n border-right: 2px solid #eee;\n}\n.logo {\n margin-top: 20px;\n margin-bottom: 10px;\n}\n.content {\n transition: opacity 0.1s ease-in;\n}\n.content.page-transition {\n opacity: 0;\n}\n',
19
- url: 'file:///home/rom/code/vike/examples/vue-full-v1/renderer/PageShell.vue',
20
- file: '/home/rom/code/vike/examples/vue-full-v1/renderer/PageShell.vue'
19
+ url: 'file:///home/rom/code/vike/examples/vue-full/renderer/PageShell.vue',
20
+ file: '/home/rom/code/vike/examples/vue-full/renderer/PageShell.vue'
21
21
  },
22
- loc: { file: '/home/rom/code/vike/examples/vue-full-v1/renderer/PageShell.vue', line: 45, column: 2 },
23
- id: '/home/rom/code/vike/examples/vue-full-v1/renderer/PageShell.vue',
22
+ loc: { file: '/home/rom/code/vike/examples/vue-full/renderer/PageShell.vue', line: 45, column: 2 },
23
+ id: '/home/rom/code/vike/examples/vue-full/renderer/PageShell.vue',
24
24
  plugin: 'vite:vue',
25
25
  pluginCode: '\n.layout {\n display: flex;\n max-width: 900px;\n margin: auto;\n}}\n.content {\n padding: 20px;\n padding-bottom: 50px;\n min-height: 100vh;\n}\n.navigation {\n padding: 20px;\n flex-shrink: 0;\n display: flex;\n flex-direction: column;\n line-height: 1.8em;\n border-right: 2px solid #eee;\n}\n.logo {\n margin-top: 20px;\n margin-bottom: 10px;\n}\n.content {\n transition: opacity 0.1s ease-in;\n}\n.content.page-transition {\n opacity: 0;\n}\n',
26
26
  frame: '43 | margin: auto;\n44 | }}\n45 | .content {\n | ^\n46 | padding: 20px;\n47 | padding-bottom: 50px;',
27
- message: '/home/rom/code/vike/examples/vue-full-v1/renderer/PageShell.vue:6:2: Unexpected }',
28
- stack: 'CssSyntaxError: /home/rom/code/vike/examples/vue-full-v1/renderer/PageShell.vue:6:2: Unexpected }\n at Input.error (/home/rom/code/vike/node_modules/.pnpm/postcss@8.4.23/node_modules/postcss/lib/input.js:148:16)\n at Parser.unexpectedClose (/home/rom/code/vike/node_modules/.pnpm/postcss@8.4.23/node_modules/postcss/lib/parser.js:548:22)\n at Parser.end (/home/rom/code/vike/node_modules/.pnpm/postcss@8.4.23/node_modules/postcss/lib/parser.js:379:12)\n at Parser.parse (/home/rom/code/vike/node_modules/.pnpm/postcss@8.4.23/node_modules/postcss/lib/parser.js:56:16)\n at parse (/home/rom/code/vike/node_modules/.pnpm/postcss@8.4.23/node_modules/postcss/lib/parse.js:11:12)\n at new LazyResult (/home/rom/code/vike/node_modules/.pnpm/postcss@8.4.23/node_modules/postcss/lib/lazy-result.js:133:16)\n at Processor.process (/home/rom/code/vike/node_modules/.pnpm/postcss@8.4.23/node_modules/postcss/lib/processor.js:28:14)\n at doCompileStyle (/home/rom/code/vike/node_modules/.pnpm/@vue+compiler-sfc@3.2.33/node_modules/@vue/compiler-sfc/dist/compiler-sfc.cjs.js:17246:45)\n at Object.compileStyleAsync (/home/rom/code/vike/node_modules/.pnpm/@vue+compiler-sfc@3.2.33/node_modules/@vue/compiler-sfc/dist/compiler-sfc.cjs.js:17188:12)\n at transformStyle (/home/rom/code/vike/node_modules/.pnpm/@vitejs+plugin-vue@4.2.1_vite@4.3.5_vue@3.2.33/node_modules/@vitejs/plugin-vue/dist/index.cjs:2622:41)'
27
+ message: '/home/rom/code/vike/examples/vue-full/renderer/PageShell.vue:6:2: Unexpected }',
28
+ stack: 'CssSyntaxError: /home/rom/code/vike/examples/vue-full/renderer/PageShell.vue:6:2: Unexpected }\n at Input.error (/home/rom/code/vike/node_modules/.pnpm/postcss@8.4.23/node_modules/postcss/lib/input.js:148:16)\n at Parser.unexpectedClose (/home/rom/code/vike/node_modules/.pnpm/postcss@8.4.23/node_modules/postcss/lib/parser.js:548:22)\n at Parser.end (/home/rom/code/vike/node_modules/.pnpm/postcss@8.4.23/node_modules/postcss/lib/parser.js:379:12)\n at Parser.parse (/home/rom/code/vike/node_modules/.pnpm/postcss@8.4.23/node_modules/postcss/lib/parser.js:56:16)\n at parse (/home/rom/code/vike/node_modules/.pnpm/postcss@8.4.23/node_modules/postcss/lib/parse.js:11:12)\n at new LazyResult (/home/rom/code/vike/node_modules/.pnpm/postcss@8.4.23/node_modules/postcss/lib/lazy-result.js:133:16)\n at Processor.process (/home/rom/code/vike/node_modules/.pnpm/postcss@8.4.23/node_modules/postcss/lib/processor.js:28:14)\n at doCompileStyle (/home/rom/code/vike/node_modules/.pnpm/@vue+compiler-sfc@3.2.33/node_modules/@vue/compiler-sfc/dist/compiler-sfc.cjs.js:17246:45)\n at Object.compileStyleAsync (/home/rom/code/vike/node_modules/.pnpm/@vue+compiler-sfc@3.2.33/node_modules/@vue/compiler-sfc/dist/compiler-sfc.cjs.js:17188:12)\n at transformStyle (/home/rom/code/vike/node_modules/.pnpm/@vitejs+plugin-vue@4.2.1_vite@4.3.5_vue@3.2.33/node_modules/@vitejs/plugin-vue/dist/index.cjs:2622:41)'
29
29
  };
@@ -2,12 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.errVueHtml = void 0;
4
4
  exports.errVueHtml = {
5
- id: '/home/rom/code/vike/examples/vue-full-v1/pages/index/+Page.vue',
5
+ id: '/home/rom/code/vike/examples/vue-full/pages/index/+Page.vue',
6
6
  plugin: 'vite:vue',
7
7
  message: 'Element is missing end tag.',
8
8
  name: 'SyntaxError',
9
9
  stack: 'SyntaxError: Element is missing end tag.\n at createCompilerError (/home/rom/code/vike/node_modules/.pnpm/@vue+compiler-core@3.2.33/node_modules/@vue/compiler-core/dist/compiler-core.cjs.js:19:19)\n at emitError (/home/rom/code/vike/node_modules/.pnpm/@vue+compiler-core@3.2.33/node_modules/@vue/compiler-core/dist/compiler-core.cjs.js:1594:29)\n at parseElement (/home/rom/code/vike/node_modules/.pnpm/@vue+compiler-core@3.2.33/node_modules/@vue/compiler-core/dist/compiler-core.cjs.js:1146:9)\n at parseChildren (/home/rom/code/vike/node_modules/.pnpm/@vue+compiler-core@3.2.33/node_modules/@vue/compiler-core/dist/compiler-core.cjs.js:937:28)\n at parseElement (/home/rom/code/vike/node_modules/.pnpm/@vue+compiler-core@3.2.33/node_modules/@vue/compiler-core/dist/compiler-core.cjs.js:1125:22)\n at parseChildren (/home/rom/code/vike/node_modules/.pnpm/@vue+compiler-core@3.2.33/node_modules/@vue/compiler-core/dist/compiler-core.cjs.js:937:28)\n at parseElement (/home/rom/code/vike/node_modules/.pnpm/@vue+compiler-core@3.2.33/node_modules/@vue/compiler-core/dist/compiler-core.cjs.js:1125:22)\n at parseChildren (/home/rom/code/vike/node_modules/.pnpm/@vue+compiler-core@3.2.33/node_modules/@vue/compiler-core/dist/compiler-core.cjs.js:937:28)\n at Object.baseParse (/home/rom/code/vike/node_modules/.pnpm/@vue+compiler-core@3.2.33/node_modules/@vue/compiler-core/dist/compiler-core.cjs.js:852:23)\n at Object.parse (/home/rom/code/vike/node_modules/.pnpm/@vue+compiler-dom@3.2.33/node_modules/@vue/compiler-dom/dist/compiler-dom.cjs.js:3077:25)',
10
- loc: { file: '/home/rom/code/vike/examples/vue-full-v1/pages/index/+Page.vue', line: 2, column: 46 },
10
+ loc: { file: '/home/rom/code/vike/examples/vue-full/pages/index/+Page.vue', line: 2, column: 46 },
11
11
  pluginCode: "<template>\n <h1>Welcome to Vike<h1>\n This page is:\n <ul>\n <li>Rendered to HTML.</li>\n <li>Interactive. <Counter /></li>\n </ul>\n <p>\n <button @click=\"randomNavigation\">Random Page</button>\n </p>\n</template>\n\n<script lang=\"ts\" setup>\nimport Counter from '../../components/Counter.vue'\nimport { navigate } from 'vike/client/router'\n\nconst randomNavigation = () => {\n const randomIndex = Math.floor(Math.random() * 3)\n navigate(['/markdown', '/star-wars', '/hello/alice.js'][randomIndex])\n}\n</script>\n",
12
12
  frame: '1 | <template>\n2 | <h1>Welcome to Vike<h1>\n | ^\n3 | This page is:\n4 | <ul>'
13
13
  };
@@ -7,9 +7,9 @@ exports.errVueJavascript = {
7
7
  loc: { line: 2, column: 7, index: 8 },
8
8
  pos: 8,
9
9
  plugin: 'vite:vue',
10
- id: '/home/rom/code/vike/examples/vue-full-v1/pages/index/+Page.vue',
10
+ id: '/home/rom/code/vike/examples/vue-full/pages/index/+Page.vue',
11
11
  pluginCode: "<template>\n <h1>Welcome to Vike</h1>\n This page is:\n <ul>\n <li>Rendered to HTML.</li>\n <li>Interactive. <Counter /></li>\n </ul>\n <p>\n <button @click=\"randomNavigation\">Random Page</button>\n </p>\n</template>\n\n<script lang=\"ts\" setup>\nimeport Counter from '../../components/Counter.vue'\nimport { navigate } from 'vike/client/router'\n\nconst randomNavigation = () => {\n const randomIndex = Math.floor(Math.random() * 3)\n navigate(['/markdown', '/star-wars', '/hello/alice.js'][randomIndex])\n}\n</script>\n",
12
12
  frame: '1 | <template>\n | ^\n2 | <h1>Welcome to Vike</h1>\n3 | This page is:',
13
- message: "[@vue/compiler-sfc] Missing semicolon. (2:7)\n\n/home/rom/code/vike/examples/vue-full-v1/pages/index/+Page.vue\n12 | \n13 | <script lang=\"ts\" setup>\n14 | imeport Counter from '../../components/Counter.vue'\n | ^\n15 | import { navigate } from 'vike/client/router.js'\n16 | ",
14
- stack: "SyntaxError: [@vue/compiler-sfc] Missing semicolon. (2:7)\n\n/home/rom/code/vike/examples/vue-full-v1/pages/index/+Page.vue\n12 | \n13 | <script lang=\"ts\" setup>\n14 | imeport Counter from '../../components/Counter.vue'\n | ^\n15 | import { navigate } from 'vike/client/router.js'\n16 | \n at instantiate (/home/rom/code/vike/node_modules/.pnpm/@babel+parser@7.21.8/node_modules/@babel/parser/src/parse-error/credentials.ts:62:21)\n at toParseError (/home/rom/code/vike/node_modules/.pnpm/@babel+parser@7.21.8/node_modules/@babel/parser/src/parse-error.ts:60:12)\n at TypeScriptParserMixin.raise (/home/rom/code/vike/node_modules/.pnpm/@babel+parser@7.21.8/node_modules/@babel/parser/src/tokenizer/index.ts:1490:19)\n at TypeScriptParserMixin.semicolon (/home/rom/code/vike/node_modules/.pnpm/@babel+parser@7.21.8/node_modules/@babel/parser/src/parser/util.ts:138:10)\n at TypeScriptParserMixin.parseExpressionStatement (/home/rom/code/vike/node_modules/.pnpm/@babel+parser@7.21.8/node_modules/@babel/parser/src/parser/statement.ts:1279:10)\n at TypeScriptParserMixin.parseExpressionStatement (/home/rom/code/vike/node_modules/.pnpm/@babel+parser@7.21.8/node_modules/@babel/parser/src/plugins/typescript/index.ts:3044:28)\n at TypeScriptParserMixin.parseStatementContent (/home/rom/code/vike/node_modules/.pnpm/@babel+parser@7.21.8/node_modules/@babel/parser/src/parser/statement.ts:643:19)\n at TypeScriptParserMixin.parseStatementContent (/home/rom/code/vike/node_modules/.pnpm/@babel+parser@7.21.8/node_modules/@babel/parser/src/plugins/typescript/index.ts:2887:20)\n at TypeScriptParserMixin.parseStatementLike (/home/rom/code/vike/node_modules/.pnpm/@babel+parser@7.21.8/node_modules/@babel/parser/src/parser/statement.ts:417:17)\n at TypeScriptParserMixin.parseModuleItem (/home/rom/code/vike/node_modules/.pnpm/@babel+parser@7.21.8/node_modules/@babel/parser/src/parser/statement.ts:354:17)"
13
+ message: "[@vue/compiler-sfc] Missing semicolon. (2:7)\n\n/home/rom/code/vike/examples/vue-full/pages/index/+Page.vue\n12 | \n13 | <script lang=\"ts\" setup>\n14 | imeport Counter from '../../components/Counter.vue'\n | ^\n15 | import { navigate } from 'vike/client/router.js'\n16 | ",
14
+ stack: "SyntaxError: [@vue/compiler-sfc] Missing semicolon. (2:7)\n\n/home/rom/code/vike/examples/vue-full/pages/index/+Page.vue\n12 | \n13 | <script lang=\"ts\" setup>\n14 | imeport Counter from '../../components/Counter.vue'\n | ^\n15 | import { navigate } from 'vike/client/router.js'\n16 | \n at instantiate (/home/rom/code/vike/node_modules/.pnpm/@babel+parser@7.21.8/node_modules/@babel/parser/src/parse-error/credentials.ts:62:21)\n at toParseError (/home/rom/code/vike/node_modules/.pnpm/@babel+parser@7.21.8/node_modules/@babel/parser/src/parse-error.ts:60:12)\n at TypeScriptParserMixin.raise (/home/rom/code/vike/node_modules/.pnpm/@babel+parser@7.21.8/node_modules/@babel/parser/src/tokenizer/index.ts:1490:19)\n at TypeScriptParserMixin.semicolon (/home/rom/code/vike/node_modules/.pnpm/@babel+parser@7.21.8/node_modules/@babel/parser/src/parser/util.ts:138:10)\n at TypeScriptParserMixin.parseExpressionStatement (/home/rom/code/vike/node_modules/.pnpm/@babel+parser@7.21.8/node_modules/@babel/parser/src/parser/statement.ts:1279:10)\n at TypeScriptParserMixin.parseExpressionStatement (/home/rom/code/vike/node_modules/.pnpm/@babel+parser@7.21.8/node_modules/@babel/parser/src/plugins/typescript/index.ts:3044:28)\n at TypeScriptParserMixin.parseStatementContent (/home/rom/code/vike/node_modules/.pnpm/@babel+parser@7.21.8/node_modules/@babel/parser/src/parser/statement.ts:643:19)\n at TypeScriptParserMixin.parseStatementContent (/home/rom/code/vike/node_modules/.pnpm/@babel+parser@7.21.8/node_modules/@babel/parser/src/plugins/typescript/index.ts:2887:20)\n at TypeScriptParserMixin.parseStatementLike (/home/rom/code/vike/node_modules/.pnpm/@babel+parser@7.21.8/node_modules/@babel/parser/src/parser/statement.ts:417:17)\n at TypeScriptParserMixin.parseModuleItem (/home/rom/code/vike/node_modules/.pnpm/@babel+parser@7.21.8/node_modules/@babel/parser/src/parser/statement.ts:354:17)"
15
15
  };
@@ -85,7 +85,7 @@ function getPrettyErrMessage(err) {
85
85
  const trail = /(?:\:|)(?:\s|$)/;
86
86
  // Remove "Transform failed with 1 error:" (redundant since we already print an intro message)
87
87
  errMsg = errMsg.split(reg([/Transform failed with \d* error(?:s|)/, trail], 'gi')).join('');
88
- // Remove "/home/rom/code/vike/examples/react-full-v1/components/Counter.tsx:1:8:" (redundant since we already print the filename)
88
+ // Remove "/home/rom/code/vike/examples/react-full/components/Counter.tsx:1:8:" (redundant since we already print the filename)
89
89
  const pos = /(?:\:\d+|)/;
90
90
  errMsg = errMsg.split(reg([id, pos, pos, trail], 'gi')).join('');
91
91
  errMsg = errMsg.split(reg([normalizeId(id), pos, pos, trail], 'gi')).join('');
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PROJECT_VERSION = exports.projectInfo = void 0;
4
4
  const assertSingleInstance_js_1 = require("./assertSingleInstance.js");
5
- const PROJECT_VERSION = '0.4.150-commit-d0822a3';
5
+ const PROJECT_VERSION = '0.4.150-commit-e6c3150';
6
6
  exports.PROJECT_VERSION = PROJECT_VERSION;
7
7
  const projectInfo = {
8
8
  projectName: 'Vike',
@@ -23,6 +23,7 @@ import { extensionsAssets } from './plugins/extensionsAssets.js';
23
23
  import { baseUrls } from './plugins/baseUrls.js';
24
24
  import { envVarsPlugin } from './plugins/envVars.js';
25
25
  import pc from '@brillout/picocolors';
26
+ import { assertFileEnv } from './plugins/assertFileEnv.js';
26
27
  markEnvAsVite();
27
28
  // Return as `any` to avoid Plugin type mismatches when there are multiple Vite versions installed
28
29
  function plugin(vikeConfig) {
@@ -44,7 +45,8 @@ function plugin(vikeConfig) {
44
45
  ...importBuild(),
45
46
  extensionsAssets(),
46
47
  baseUrls(vikeConfig),
47
- envVarsPlugin()
48
+ envVarsPlugin(),
49
+ assertFileEnv()
48
50
  ];
49
51
  return plugins;
50
52
  }
@@ -0,0 +1,3 @@
1
+ export { assertFileEnv };
2
+ import type { Plugin } from 'vite';
3
+ declare function assertFileEnv(): Plugin;
@@ -0,0 +1,101 @@
1
+ export { assertFileEnv };
2
+ import { assert, assertUsage, assertWarning, capitalizeFirstLetter, getFilePathRelativeToUserRootDir } from '../utils.js';
3
+ import { extractAssetsRE } from './extractAssetsPlugin.js';
4
+ import { extractExportNamesRE } from './extractExportNamesPlugin.js';
5
+ import pc from '@brillout/picocolors';
6
+ function assertFileEnv() {
7
+ let config;
8
+ let isDev = false;
9
+ return {
10
+ name: 'vike:assertFileEnv',
11
+ // - We need to set `enforce: 'pre'` because, otherwise, the resolvedId() hook of Vite's internal plugin `vite:resolve` is called before and it doesn't seem to call `this.resolve()` which means that the resolveId() hook below is never called.
12
+ // - Vite's `vite:resolve` plugin: https://github.com/vitejs/vite/blob/d649daba7682791178b711d9a3e44a6b5d00990c/packages/vite/src/node/plugins/resolve.ts#L105
13
+ // - It's actually a good thing if the resolveId() hook below is the first one to be called because it doesn't actually resolve any ID, so all other resolveId() hooks will be called as normal. And with `this.resolve()` we get the information we want from all other resolvedId() hooks.
14
+ // - Path aliases are already resolved, even when using `enforce: 'pre'`. For example:
15
+ // ```js
16
+ // // /pages/index/+Page.tsx
17
+ //
18
+ // // The value of `source` is `/home/rom/code/vike/examples/path-aliases/components/Counter` (instead of `#root/components/Counter`)
19
+ // // The value of `importer` is `/home/rom/code/vike/examples/path-aliases/pages/index/+Page.tsx`
20
+ // import { Counter } from '#root/components/Counter'
21
+ // ```
22
+ enforce: 'pre',
23
+ resolveId: {
24
+ /* I don't know why, but path aliases aren't resolved anymore when setting `order: 'pre'`. (In principle, I'd assume that `this.resolve()` would resolve the alias but it doesn't.)
25
+ order: 'pre',
26
+ */
27
+ async handler(source, importer, options) {
28
+ // TODO/v1-release: remove
29
+ if (extractAssetsRE.test(source) || extractExportNamesRE.test(source))
30
+ return;
31
+ // Seems like Vite is doing some funky stuff here.
32
+ if (importer?.endsWith('.html'))
33
+ return;
34
+ const resolved = await this.resolve(source, importer, {
35
+ // Needed for old Vite plugins: https://vitejs.dev/guide/migration#rollup-4:~:text=For%20Vite%20plugins%2C%20this.resolve%20skipSelf%20option%20is%20now%20true%20by%20default.
36
+ skipSelf: true,
37
+ ...options
38
+ });
39
+ // resolved is null when import path is erroneous and doesn't actually point to a file
40
+ if (!resolved)
41
+ return;
42
+ const modulePath = resolved.id.split('?')[0];
43
+ // `.server.js` and `.client.js` should only apply to user files
44
+ if (modulePath.includes('/node_modules/'))
45
+ return;
46
+ // TODO/v1-release: remove
47
+ if (modulePath.endsWith('.css'))
48
+ return;
49
+ const isServerSide = options?.ssr;
50
+ const envActual = isServerSide ? 'server' : 'client';
51
+ const envExpect = isServerSide ? 'client' : 'server';
52
+ const suffix = `.${envExpect}.`;
53
+ // Everything nonimal
54
+ if (!modulePath.includes(suffix))
55
+ return;
56
+ // Show error message
57
+ let errMsg;
58
+ let modulePathPretty = getFilePathRelativeToUserRootDir(modulePath, config.root);
59
+ modulePathPretty = modulePathPretty.replaceAll(suffix, pc.bold(suffix));
60
+ errMsg = `${capitalizeFirstLetter(envExpect)}-only module ${modulePathPretty} (https://vike.dev/file-env) imported on the ${envActual}-side`;
61
+ if (importer &&
62
+ // Don't show Vike's virtual modules that import the entry plus files such as /pages/about/+Page.js
63
+ !importer.includes('virtual:vike:') &&
64
+ // I don't know why and who sets importer to '<stdin>' (I guess Vite?)
65
+ importer !== '<stdin>') {
66
+ const importerPath = getFilePathRelativeToUserRootDir(importer.split('?')[0], config.root);
67
+ errMsg += ` by ${importerPath}`;
68
+ }
69
+ if (isDev) {
70
+ errMsg += ' (building your app for production will be prevented and an error will be thrown)';
71
+ }
72
+ errMsg += '.';
73
+ if (isDev) {
74
+ assertWarning(false, errMsg, { onlyOnce: true });
75
+ }
76
+ else {
77
+ assertUsage(false, errMsg);
78
+ }
79
+ }
80
+ },
81
+ configResolved(config_) {
82
+ config = config_;
83
+ },
84
+ configureServer() {
85
+ isDev = true;
86
+ },
87
+ // Ensure this plugin works
88
+ transform(_code, id, options) {
89
+ if (isDev)
90
+ return;
91
+ // TODO/v1-release: remove
92
+ if (extractAssetsRE.test(id) || extractExportNamesRE.test(id))
93
+ return;
94
+ if (id.split('?')[0].endsWith('.css'))
95
+ return;
96
+ const isServerSide = options?.ssr;
97
+ const envWrong = isServerSide ? 'client' : 'server';
98
+ assert(!id.includes(`.${envWrong}.`));
99
+ }
100
+ };
101
+ }
@@ -1,26 +1,27 @@
1
1
  export { crawlPlusFiles };
2
- import { assertPosixPath, assert, toPosixPath, assertWarning, scriptFileExtensionList, scriptFileExtensions } from '../../../../utils.js';
2
+ import { assertPosixPath, assert, toPosixPath, assertWarning, scriptFileExtensionList, scriptFileExtensions, getGlobalObject } from '../../../../utils.js';
3
3
  import path from 'path';
4
4
  import glob from 'fast-glob';
5
5
  import { exec } from 'child_process';
6
6
  import { promisify } from 'util';
7
7
  const execA = promisify(exec);
8
+ const globalObject = getGlobalObject('crawlPlusFiles.ts', {
9
+ gitIsMissing: false
10
+ });
8
11
  async function crawlPlusFiles(userRootDir, outDirAbsoluteFilesystem, isDev) {
9
12
  assertPosixPath(userRootDir);
10
13
  assertPosixPath(outDirAbsoluteFilesystem);
11
- // Vike prepends userRootDir without resolving, e.g. outDirRelativeFromUserRootDir can be /home/rom/my-monorepo/my-app/../my-build/dist/ while userRootDir is /home/rom/my-monorepo/my-app/
12
- assert(outDirAbsoluteFilesystem.startsWith(userRootDir));
13
14
  let outDirRelativeFromUserRootDir = path.posix.relative(userRootDir, outDirAbsoluteFilesystem);
14
15
  if (outDirRelativeFromUserRootDir.startsWith('../')) {
15
16
  // config.outDir is outside of config.root => it's going to be ignored anyways
16
17
  outDirRelativeFromUserRootDir = null;
17
18
  }
18
19
  assert(outDirRelativeFromUserRootDir === null || !outDirRelativeFromUserRootDir.startsWith('.'));
19
- const timeBase = new Date().getTime();
20
+ const timeBefore = new Date().getTime();
20
21
  let files = [];
21
22
  const res = await gitLsFiles(userRootDir, outDirRelativeFromUserRootDir);
22
23
  if (res &&
23
- // Fallback to fast-glob for users that dynamically generate plus files (we assume generetad plus files to be skipped because they are usually included in .gitignore)
24
+ // Fallback to fast-glob for users that dynamically generate plus files. (Assuming all (generetad) plus files to be skipped because users usually included them in `.gitignore`.)
24
25
  res.length > 0) {
25
26
  files = res;
26
27
  }
@@ -28,10 +29,11 @@ async function crawlPlusFiles(userRootDir, outDirAbsoluteFilesystem, isDev) {
28
29
  files = await fastGlob(userRootDir, outDirRelativeFromUserRootDir);
29
30
  }
30
31
  {
31
- const time = new Date().getTime() - timeBase;
32
+ const timeAfter = new Date().getTime();
33
+ const timeSpent = timeAfter - timeBefore;
32
34
  if (isDev) {
33
- // We only warn in dev, because while building it's expected to take a long time as fast-glob is competing for resources with other tasks
34
- assertWarning(time < 2 * 1000, `Crawling your user files took an unexpected long time (${time}ms). Create a new issue on Vike's GitHub.`, {
35
+ // We only warn in dev, because while building it's expected to take a long time as crawling is competing for resources with other tasks.
36
+ assertWarning(timeSpent < 2 * 1000, `Crawling your user files took an unexpected long time (${timeSpent}ms). Create a new issue on Vike's GitHub.`, {
35
37
  onlyOnce: 'slow-page-files-search'
36
38
  });
37
39
  }
@@ -50,37 +52,54 @@ async function crawlPlusFiles(userRootDir, outDirAbsoluteFilesystem, isDev) {
50
52
  }
51
53
  // Same as fastGlob() but using `$ git ls-files`
52
54
  async function gitLsFiles(userRootDir, outDirRelativeFromUserRootDir) {
53
- if (!(await isUsingGit(userRootDir)))
55
+ if (globalObject.gitIsMissing)
54
56
  return null;
57
+ const ignoreAsPatterns = getIgnoreAsPatterns(outDirRelativeFromUserRootDir);
58
+ const ignoreAsFilterFn = getIgnoreAsFilterFn(outDirRelativeFromUserRootDir);
55
59
  const cmd = [
56
60
  'git ls-files',
57
61
  ...scriptFileExtensionList.map((ext) => `"**/+*.${ext}"`),
58
- ...getIgnorePatterns(outDirRelativeFromUserRootDir).map((pattern) => `--exclude="${pattern}"`),
62
+ ...ignoreAsPatterns.map((pattern) => `--exclude="${pattern}"`),
59
63
  // --others lists untracked files only (but using .gitignore because --exclude-standard)
60
64
  // --cached adds the tracked files to the output
61
65
  '--others --cached --exclude-standard'
62
66
  ].join(' ');
63
- let files = await runCmd(cmd, userRootDir);
64
- files = files.filter(
65
- // We have to repeat the same exclusion logic here because the `git ls-files` option --exclude only applies to untracked files. (We use --exclude only to speed up the command.)
66
- (file) => getIgnoreFilter(file, outDirRelativeFromUserRootDir));
67
- // Remove tracked but deleted files
68
- const filesIgnore = await runCmd('git ls-files --deleted', userRootDir);
69
- files = files.filter((file) => !filesIgnore.includes(file));
67
+ let files;
68
+ let filesDeleted;
69
+ try {
70
+ ;
71
+ [files, filesDeleted] = await Promise.all([
72
+ // Main command
73
+ runCmd(cmd, userRootDir),
74
+ // Get tracked by deleted files
75
+ runCmd('git ls-files --deleted', userRootDir)
76
+ ]);
77
+ }
78
+ catch (err) {
79
+ if (await isGitMissing(userRootDir)) {
80
+ globalObject.gitIsMissing = true;
81
+ return null;
82
+ }
83
+ throw err;
84
+ }
85
+ files = files
86
+ // We have to repeat the same exclusion logic here because the `git ls-files` option --exclude only applies to untracked files. (We use --exclude only to speed up the command.)
87
+ .filter(ignoreAsFilterFn)
88
+ .filter((file) => !filesDeleted.includes(file));
70
89
  return files;
71
90
  }
72
91
  // Same as gitLsFiles() but using fast-glob
73
92
  async function fastGlob(userRootDir, outDirRelativeFromUserRootDir) {
74
93
  const files = await glob(`**/+*.${scriptFileExtensions}`, {
75
- ignore: getIgnorePatterns(outDirRelativeFromUserRootDir),
94
+ ignore: getIgnoreAsPatterns(outDirRelativeFromUserRootDir),
76
95
  cwd: userRootDir,
77
96
  dot: false
78
97
  });
79
98
  return files;
80
99
  }
81
100
  // Same as getIgnoreFilter() but as glob pattern
82
- function getIgnorePatterns(outDirRelativeFromUserRootDir) {
83
- const ignorePatterns = [
101
+ function getIgnoreAsPatterns(outDirRelativeFromUserRootDir) {
102
+ const ignoreAsPatterns = [
84
103
  '**/node_modules/**',
85
104
  // Allow:
86
105
  // ```
@@ -91,31 +110,30 @@ function getIgnorePatterns(outDirRelativeFromUserRootDir) {
91
110
  ];
92
111
  if (outDirRelativeFromUserRootDir) {
93
112
  assert(!outDirRelativeFromUserRootDir.startsWith('/'));
94
- ignorePatterns.push(`${outDirRelativeFromUserRootDir}/**`);
113
+ ignoreAsPatterns.push(`${outDirRelativeFromUserRootDir}/**`);
95
114
  }
96
- return ignorePatterns;
115
+ return ignoreAsPatterns;
97
116
  }
98
117
  // Same as getIgnorePatterns() but for Array.filter()
99
- function getIgnoreFilter(file, outDirRelativeFromUserRootDir) {
100
- assert(!file.startsWith('/'));
118
+ function getIgnoreAsFilterFn(outDirRelativeFromUserRootDir) {
101
119
  assert(outDirRelativeFromUserRootDir === null || !outDirRelativeFromUserRootDir.startsWith('/'));
102
- return (!file.includes('node_modules/') &&
120
+ return (file) => !file.includes('node_modules/') &&
103
121
  !file.includes('.telefunc.') &&
104
- (!outDirRelativeFromUserRootDir || !file.startsWith(`${outDirRelativeFromUserRootDir}/`)));
122
+ (outDirRelativeFromUserRootDir === null || !file.startsWith(`${outDirRelativeFromUserRootDir}/`));
105
123
  }
106
124
  // Whether Git is installed and whether userRootDir is inside a Git repository
107
- async function isUsingGit(userRootDir) {
125
+ async function isGitMissing(userRootDir) {
108
126
  let res;
109
127
  try {
110
128
  res = await execA('git rev-parse --is-inside-work-tree', { cwd: userRootDir });
111
129
  }
112
130
  catch {
113
- return false;
131
+ return true;
114
132
  }
115
133
  const { stdout, stderr } = res;
116
134
  assert(stderr.toString().trim() === '');
117
135
  assert(stdout.toString().trim() === 'true');
118
- return true;
136
+ return false;
119
137
  }
120
138
  async function runCmd(cmd, cwd) {
121
139
  const res = await execA(cmd, { cwd });
@@ -1,16 +1,16 @@
1
1
  export const errSwc = {
2
- stack: "Error: \n \u001b[38;2;255;30;30m×\u001b[0m Expected ';', '}' or <eof>\n ╭─[\u001b[38;2;92;157;255;1;4m/home/rom/code/vike/examples/react-full-v1/pages/hello/+Page.tsx\u001b[0m:1:1]\n \u001b[2m1\u001b[0m │ export default Page\n \u001b[2m2\u001b[0m │ \n \u001b[2m3\u001b[0m │ impeort React from 'react'\n · \u001b[38;2;246;87;248m───┬───\u001b[0m\u001b[38;2;30;201;212m ─────\u001b[0m\n · \u001b[38;2;246;87;248m╰── \u001b[38;2;246;87;248mThis is the expression part of an expression statement\u001b[0m\u001b[0m\n \u001b[2m4\u001b[0m │ \n \u001b[2m5\u001b[0m │ function Page({ name }: { name: string }) {\n \u001b[2m6\u001b[0m │ return (\n ╰────\n\n\nCaused by:\n Syntax Error",
2
+ stack: "Error: \n \u001b[38;2;255;30;30m×\u001b[0m Expected ';', '}' or <eof>\n ╭─[\u001b[38;2;92;157;255;1;4m/home/rom/code/vike/examples/react-full/pages/hello/+Page.tsx\u001b[0m:1:1]\n \u001b[2m1\u001b[0m │ export default Page\n \u001b[2m2\u001b[0m │ \n \u001b[2m3\u001b[0m │ impeort React from 'react'\n · \u001b[38;2;246;87;248m───┬───\u001b[0m\u001b[38;2;30;201;212m ─────\u001b[0m\n · \u001b[38;2;246;87;248m╰── \u001b[38;2;246;87;248mThis is the expression part of an expression statement\u001b[0m\u001b[0m\n \u001b[2m4\u001b[0m │ \n \u001b[2m5\u001b[0m │ function Page({ name }: { name: string }) {\n \u001b[2m6\u001b[0m │ return (\n ╰────\n\n\nCaused by:\n Syntax Error",
3
3
  code: 'GenericFailure',
4
4
  line: '1',
5
5
  column: '1',
6
6
  plugin: 'vite:react-swc',
7
- id: '/home/rom/code/vike/examples/react-full-v1/pages/hello/+Page.tsx',
7
+ id: '/home/rom/code/vike/examples/react-full/pages/hello/+Page.tsx',
8
8
  pluginCode: 'export default Page\n\nimpeort React from \'react\'\n\nfunction Page({ name }: { name: string }) {\n return (\n <>\n <h1>Hello</h1>\n <p>\n Hi <b>{name}</b>.\n </p>\n <ul>\n <li>\n <a href="/hello/eli">/hello/eli</a>\n </li>\n <li>\n <a href="/hello/jon">/hello/jon</a>\n </li>\n </ul>\n <p>\n Parameterized routes can be defined by exporting a route string in <code>*.page.route.js</code>.\n </p>\n </>\n )\n}\n',
9
9
  loc: {
10
- file: '/home/rom/code/vike/examples/react-full-v1/pages/hello/+Page.tsx',
10
+ file: '/home/rom/code/vike/examples/react-full/pages/hello/+Page.tsx',
11
11
  line: '1',
12
12
  column: '1'
13
13
  },
14
- frame: '1 | /home/rom/code/vike/examples/react-full-v1/pages/hello/+Page.tsx\n | ^',
15
- message: "\n \u001b[38;2;255;30;30m×\u001b[0m Expected ';', '}' or <eof>\n ╭─[\u001b[38;2;92;157;255;1;4m/home/rom/code/vike/examples/react-full-v1/pages/hello/+Page.tsx\u001b[0m:1:1]\n \u001b[2m1\u001b[0m │ export default Page\n \u001b[2m2\u001b[0m │ \n \u001b[2m3\u001b[0m │ impeort React from 'react'\n · \u001b[38;2;246;87;248m───┬───\u001b[0m\u001b[38;2;30;201;212m ─────\u001b[0m\n · \u001b[38;2;246;87;248m╰── \u001b[38;2;246;87;248mThis is the expression part of an expression statement\u001b[0m\u001b[0m\n \u001b[2m4\u001b[0m │ \n \u001b[2m5\u001b[0m │ function Page({ name }: { name: string }) {\n \u001b[2m6\u001b[0m │ return (\n ╰────\n\n\nCaused by:\n Syntax Error"
14
+ frame: '1 | /home/rom/code/vike/examples/react-full/pages/hello/+Page.tsx\n | ^',
15
+ message: "\n \u001b[38;2;255;30;30m×\u001b[0m Expected ';', '}' or <eof>\n ╭─[\u001b[38;2;92;157;255;1;4m/home/rom/code/vike/examples/react-full/pages/hello/+Page.tsx\u001b[0m:1:1]\n \u001b[2m1\u001b[0m │ export default Page\n \u001b[2m2\u001b[0m │ \n \u001b[2m3\u001b[0m │ impeort React from 'react'\n · \u001b[38;2;246;87;248m───┬───\u001b[0m\u001b[38;2;30;201;212m ─────\u001b[0m\n · \u001b[38;2;246;87;248m╰── \u001b[38;2;246;87;248mThis is the expression part of an expression statement\u001b[0m\u001b[0m\n \u001b[2m4\u001b[0m │ \n \u001b[2m5\u001b[0m │ function Page({ name }: { name: string }) {\n \u001b[2m6\u001b[0m │ return (\n ╰────\n\n\nCaused by:\n Syntax Error"
16
16
  };
@@ -3,14 +3,14 @@ export const errSwcBig = {
3
3
  line: '6',
4
4
  column: '1',
5
5
  plugin: 'vite:react-swc',
6
- id: '/home/rom/code/vike/examples/react-full-v1/pages/index/+Page.tsx',
6
+ id: '/home/rom/code/vike/examples/react-full/pages/index/+Page.tsx',
7
7
  pluginCode: "export default Page\n\nimport React from 'react'\nimport { navigate } from 'vike/client/router'\nimport { Counter } from '../../components/Counter'\n\nfunction Page() {\n return (\n <>\n <h1>\n Welcome to Vike\n <h1>\n This page is:\n <ul>\n <li>Rendered to HTML.</li>\n <li>\n Interactive. <Counter />\n </li>\n </ul>\n <p>\n <button\n onClick={() => {\n const randomIndex = Math.floor(Math.random() * 3)\n navigate(['/markdown', '/star-wars', '/hello/alice.js'][randomIndex])\n }}\n >\n Random Page\n </button>\n </p>\n </>\n )\n}\n",
8
8
  loc: {
9
- file: '/home/rom/code/vike/examples/react-full-v1/pages/index/+Page.tsx',
9
+ file: '/home/rom/code/vike/examples/react-full/pages/index/+Page.tsx',
10
10
  line: '6',
11
11
  column: '1'
12
12
  },
13
13
  frame: '',
14
- message: "\n \u001b[38;2;255;30;30m×\u001b[0m Expression expected\n ╭─[\u001b[38;2;92;157;255;1;4m/home/rom/code/vike/examples/react-full-v1/pages/index/+Page.tsx\u001b[0m:6:1]\n \u001b[2m 6\u001b[0m │ \n \u001b[2m 7\u001b[0m │ function Page() {\n \u001b[2m 8\u001b[0m │ return (\n \u001b[2m 9\u001b[0m │ <>\n · \u001b[38;2;246;87;248m ─\u001b[0m\n \u001b[2m10\u001b[0m │ <h1>\n \u001b[2m11\u001b[0m │ Welcome to Vike\n \u001b[2m12\u001b[0m │ <h1>\n ╰────\n\n \u001b[38;2;255;30;30m×\u001b[0m Unexpected token. Did you mean `{'}'}` or `&rbrace;`?\n ╭─[\u001b[38;2;92;157;255;1;4m/home/rom/code/vike/examples/react-full-v1/pages/index/+Page.tsx\u001b[0m:29:1]\n \u001b[2m29\u001b[0m │ </p>\n \u001b[2m30\u001b[0m │ </>\n \u001b[2m31\u001b[0m │ )\n \u001b[2m32\u001b[0m │ }\n · \u001b[38;2;246;87;248m▲\u001b[0m\n ╰────\n\n \u001b[38;2;255;30;30m×\u001b[0m Unterminated JSX contents\n ╭─[\u001b[38;2;92;157;255;1;4m/home/rom/code/vike/examples/react-full-v1/pages/index/+Page.tsx\u001b[0m:27:1]\n \u001b[2m27\u001b[0m │ Random Page\n \u001b[2m28\u001b[0m │ </button>\n \u001b[2m29\u001b[0m │ </p>\n \u001b[2m30\u001b[0m │ \u001b[38;2;246;87;248m╭\u001b[0m\u001b[38;2;246;87;248m─\u001b[0m\u001b[38;2;246;87;248m▶\u001b[0m </>\n \u001b[2m31\u001b[0m │ \u001b[38;2;246;87;248m│\u001b[0m )\n \u001b[2m32\u001b[0m │ \u001b[38;2;246;87;248m╰\u001b[0m\u001b[38;2;246;87;248m─\u001b[0m\u001b[38;2;246;87;248m▶\u001b[0m }\n ╰────\n\n\nCaused by:\n Syntax Error",
15
- stack: "Error: \n \u001b[38;2;255;30;30m×\u001b[0m Expression expected\n ╭─[\u001b[38;2;92;157;255;1;4m/home/rom/code/vike/examples/react-full-v1/pages/index/+Page.tsx\u001b[0m:6:1]\n \u001b[2m 6\u001b[0m │ \n \u001b[2m 7\u001b[0m │ function Page() {\n \u001b[2m 8\u001b[0m │ return (\n \u001b[2m 9\u001b[0m │ <>\n · \u001b[38;2;246;87;248m ─\u001b[0m\n \u001b[2m10\u001b[0m │ <h1>\n \u001b[2m11\u001b[0m │ Welcome to Vike\n \u001b[2m12\u001b[0m │ <h1>\n ╰────\n\n \u001b[38;2;255;30;30m×\u001b[0m Unexpected token. Did you mean `{'}'}` or `&rbrace;`?\n ╭─[\u001b[38;2;92;157;255;1;4m/home/rom/code/vike/examples/react-full-v1/pages/index/+Page.tsx\u001b[0m:29:1]\n \u001b[2m29\u001b[0m │ </p>\n \u001b[2m30\u001b[0m │ </>\n \u001b[2m31\u001b[0m │ )\n \u001b[2m32\u001b[0m │ }\n · \u001b[38;2;246;87;248m▲\u001b[0m\n ╰────\n\n \u001b[38;2;255;30;30m×\u001b[0m Unterminated JSX contents\n ╭─[\u001b[38;2;92;157;255;1;4m/home/rom/code/vike/examples/react-full-v1/pages/index/+Page.tsx\u001b[0m:27:1]\n \u001b[2m27\u001b[0m │ Random Page\n \u001b[2m28\u001b[0m │ </button>\n \u001b[2m29\u001b[0m │ </p>\n \u001b[2m30\u001b[0m │ \u001b[38;2;246;87;248m╭\u001b[0m\u001b[38;2;246;87;248m─\u001b[0m\u001b[38;2;246;87;248m▶\u001b[0m </>\n \u001b[2m31\u001b[0m │ \u001b[38;2;246;87;248m│\u001b[0m )\n \u001b[2m32\u001b[0m │ \u001b[38;2;246;87;248m╰\u001b[0m\u001b[38;2;246;87;248m─\u001b[0m\u001b[38;2;246;87;248m▶\u001b[0m }\n ╰────\n\n\nCaused by:\n Syntax Error"
14
+ message: "\n \u001b[38;2;255;30;30m×\u001b[0m Expression expected\n ╭─[\u001b[38;2;92;157;255;1;4m/home/rom/code/vike/examples/react-full/pages/index/+Page.tsx\u001b[0m:6:1]\n \u001b[2m 6\u001b[0m │ \n \u001b[2m 7\u001b[0m │ function Page() {\n \u001b[2m 8\u001b[0m │ return (\n \u001b[2m 9\u001b[0m │ <>\n · \u001b[38;2;246;87;248m ─\u001b[0m\n \u001b[2m10\u001b[0m │ <h1>\n \u001b[2m11\u001b[0m │ Welcome to Vike\n \u001b[2m12\u001b[0m │ <h1>\n ╰────\n\n \u001b[38;2;255;30;30m×\u001b[0m Unexpected token. Did you mean `{'}'}` or `&rbrace;`?\n ╭─[\u001b[38;2;92;157;255;1;4m/home/rom/code/vike/examples/react-full/pages/index/+Page.tsx\u001b[0m:29:1]\n \u001b[2m29\u001b[0m │ </p>\n \u001b[2m30\u001b[0m │ </>\n \u001b[2m31\u001b[0m │ )\n \u001b[2m32\u001b[0m │ }\n · \u001b[38;2;246;87;248m▲\u001b[0m\n ╰────\n\n \u001b[38;2;255;30;30m×\u001b[0m Unterminated JSX contents\n ╭─[\u001b[38;2;92;157;255;1;4m/home/rom/code/vike/examples/react-full/pages/index/+Page.tsx\u001b[0m:27:1]\n \u001b[2m27\u001b[0m │ Random Page\n \u001b[2m28\u001b[0m │ </button>\n \u001b[2m29\u001b[0m │ </p>\n \u001b[2m30\u001b[0m │ \u001b[38;2;246;87;248m╭\u001b[0m\u001b[38;2;246;87;248m─\u001b[0m\u001b[38;2;246;87;248m▶\u001b[0m </>\n \u001b[2m31\u001b[0m │ \u001b[38;2;246;87;248m│\u001b[0m )\n \u001b[2m32\u001b[0m │ \u001b[38;2;246;87;248m╰\u001b[0m\u001b[38;2;246;87;248m─\u001b[0m\u001b[38;2;246;87;248m▶\u001b[0m }\n ╰────\n\n\nCaused by:\n Syntax Error",
15
+ stack: "Error: \n \u001b[38;2;255;30;30m×\u001b[0m Expression expected\n ╭─[\u001b[38;2;92;157;255;1;4m/home/rom/code/vike/examples/react-full/pages/index/+Page.tsx\u001b[0m:6:1]\n \u001b[2m 6\u001b[0m │ \n \u001b[2m 7\u001b[0m │ function Page() {\n \u001b[2m 8\u001b[0m │ return (\n \u001b[2m 9\u001b[0m │ <>\n · \u001b[38;2;246;87;248m ─\u001b[0m\n \u001b[2m10\u001b[0m │ <h1>\n \u001b[2m11\u001b[0m │ Welcome to Vike\n \u001b[2m12\u001b[0m │ <h1>\n ╰────\n\n \u001b[38;2;255;30;30m×\u001b[0m Unexpected token. Did you mean `{'}'}` or `&rbrace;`?\n ╭─[\u001b[38;2;92;157;255;1;4m/home/rom/code/vike/examples/react-full/pages/index/+Page.tsx\u001b[0m:29:1]\n \u001b[2m29\u001b[0m │ </p>\n \u001b[2m30\u001b[0m │ </>\n \u001b[2m31\u001b[0m │ )\n \u001b[2m32\u001b[0m │ }\n · \u001b[38;2;246;87;248m▲\u001b[0m\n ╰────\n\n \u001b[38;2;255;30;30m×\u001b[0m Unterminated JSX contents\n ╭─[\u001b[38;2;92;157;255;1;4m/home/rom/code/vike/examples/react-full/pages/index/+Page.tsx\u001b[0m:27:1]\n \u001b[2m27\u001b[0m │ Random Page\n \u001b[2m28\u001b[0m │ </button>\n \u001b[2m29\u001b[0m │ </p>\n \u001b[2m30\u001b[0m │ \u001b[38;2;246;87;248m╭\u001b[0m\u001b[38;2;246;87;248m─\u001b[0m\u001b[38;2;246;87;248m▶\u001b[0m </>\n \u001b[2m31\u001b[0m │ \u001b[38;2;246;87;248m│\u001b[0m )\n \u001b[2m32\u001b[0m │ \u001b[38;2;246;87;248m╰\u001b[0m\u001b[38;2;246;87;248m─\u001b[0m\u001b[38;2;246;87;248m▶\u001b[0m }\n ╰────\n\n\nCaused by:\n Syntax Error"
16
16
  };
@@ -1,7 +1,7 @@
1
1
  export const errVueCss = {
2
2
  name: 'CssSyntaxError',
3
3
  reason: 'Unexpected }',
4
- file: '/home/rom/code/vike/examples/vue-full-v1/renderer/PageShell.vue',
4
+ file: '/home/rom/code/vike/examples/vue-full/renderer/PageShell.vue',
5
5
  source: '\n.layout {\n display: flex;\n max-width: 900px;\n margin: auto;\n}}\n.content {\n padding: 20px;\n padding-bottom: 50px;\n min-height: 100vh;\n}\n.navigation {\n padding: 20px;\n flex-shrink: 0;\n display: flex;\n flex-direction: column;\n line-height: 1.8em;\n border-right: 2px solid #eee;\n}\n.logo {\n margin-top: 20px;\n margin-bottom: 10px;\n}\n.content {\n transition: opacity 0.1s ease-in;\n}\n.content.page-transition {\n opacity: 0;\n}\n',
6
6
  line: 6,
7
7
  column: 2,
@@ -13,14 +13,14 @@ export const errVueCss = {
13
13
  endLine: 6,
14
14
  endColumn: 3,
15
15
  source: '\n.layout {\n display: flex;\n max-width: 900px;\n margin: auto;\n}}\n.content {\n padding: 20px;\n padding-bottom: 50px;\n min-height: 100vh;\n}\n.navigation {\n padding: 20px;\n flex-shrink: 0;\n display: flex;\n flex-direction: column;\n line-height: 1.8em;\n border-right: 2px solid #eee;\n}\n.logo {\n margin-top: 20px;\n margin-bottom: 10px;\n}\n.content {\n transition: opacity 0.1s ease-in;\n}\n.content.page-transition {\n opacity: 0;\n}\n',
16
- url: 'file:///home/rom/code/vike/examples/vue-full-v1/renderer/PageShell.vue',
17
- file: '/home/rom/code/vike/examples/vue-full-v1/renderer/PageShell.vue'
16
+ url: 'file:///home/rom/code/vike/examples/vue-full/renderer/PageShell.vue',
17
+ file: '/home/rom/code/vike/examples/vue-full/renderer/PageShell.vue'
18
18
  },
19
- loc: { file: '/home/rom/code/vike/examples/vue-full-v1/renderer/PageShell.vue', line: 45, column: 2 },
20
- id: '/home/rom/code/vike/examples/vue-full-v1/renderer/PageShell.vue',
19
+ loc: { file: '/home/rom/code/vike/examples/vue-full/renderer/PageShell.vue', line: 45, column: 2 },
20
+ id: '/home/rom/code/vike/examples/vue-full/renderer/PageShell.vue',
21
21
  plugin: 'vite:vue',
22
22
  pluginCode: '\n.layout {\n display: flex;\n max-width: 900px;\n margin: auto;\n}}\n.content {\n padding: 20px;\n padding-bottom: 50px;\n min-height: 100vh;\n}\n.navigation {\n padding: 20px;\n flex-shrink: 0;\n display: flex;\n flex-direction: column;\n line-height: 1.8em;\n border-right: 2px solid #eee;\n}\n.logo {\n margin-top: 20px;\n margin-bottom: 10px;\n}\n.content {\n transition: opacity 0.1s ease-in;\n}\n.content.page-transition {\n opacity: 0;\n}\n',
23
23
  frame: '43 | margin: auto;\n44 | }}\n45 | .content {\n | ^\n46 | padding: 20px;\n47 | padding-bottom: 50px;',
24
- message: '/home/rom/code/vike/examples/vue-full-v1/renderer/PageShell.vue:6:2: Unexpected }',
25
- stack: 'CssSyntaxError: /home/rom/code/vike/examples/vue-full-v1/renderer/PageShell.vue:6:2: Unexpected }\n at Input.error (/home/rom/code/vike/node_modules/.pnpm/postcss@8.4.23/node_modules/postcss/lib/input.js:148:16)\n at Parser.unexpectedClose (/home/rom/code/vike/node_modules/.pnpm/postcss@8.4.23/node_modules/postcss/lib/parser.js:548:22)\n at Parser.end (/home/rom/code/vike/node_modules/.pnpm/postcss@8.4.23/node_modules/postcss/lib/parser.js:379:12)\n at Parser.parse (/home/rom/code/vike/node_modules/.pnpm/postcss@8.4.23/node_modules/postcss/lib/parser.js:56:16)\n at parse (/home/rom/code/vike/node_modules/.pnpm/postcss@8.4.23/node_modules/postcss/lib/parse.js:11:12)\n at new LazyResult (/home/rom/code/vike/node_modules/.pnpm/postcss@8.4.23/node_modules/postcss/lib/lazy-result.js:133:16)\n at Processor.process (/home/rom/code/vike/node_modules/.pnpm/postcss@8.4.23/node_modules/postcss/lib/processor.js:28:14)\n at doCompileStyle (/home/rom/code/vike/node_modules/.pnpm/@vue+compiler-sfc@3.2.33/node_modules/@vue/compiler-sfc/dist/compiler-sfc.cjs.js:17246:45)\n at Object.compileStyleAsync (/home/rom/code/vike/node_modules/.pnpm/@vue+compiler-sfc@3.2.33/node_modules/@vue/compiler-sfc/dist/compiler-sfc.cjs.js:17188:12)\n at transformStyle (/home/rom/code/vike/node_modules/.pnpm/@vitejs+plugin-vue@4.2.1_vite@4.3.5_vue@3.2.33/node_modules/@vitejs/plugin-vue/dist/index.cjs:2622:41)'
24
+ message: '/home/rom/code/vike/examples/vue-full/renderer/PageShell.vue:6:2: Unexpected }',
25
+ stack: 'CssSyntaxError: /home/rom/code/vike/examples/vue-full/renderer/PageShell.vue:6:2: Unexpected }\n at Input.error (/home/rom/code/vike/node_modules/.pnpm/postcss@8.4.23/node_modules/postcss/lib/input.js:148:16)\n at Parser.unexpectedClose (/home/rom/code/vike/node_modules/.pnpm/postcss@8.4.23/node_modules/postcss/lib/parser.js:548:22)\n at Parser.end (/home/rom/code/vike/node_modules/.pnpm/postcss@8.4.23/node_modules/postcss/lib/parser.js:379:12)\n at Parser.parse (/home/rom/code/vike/node_modules/.pnpm/postcss@8.4.23/node_modules/postcss/lib/parser.js:56:16)\n at parse (/home/rom/code/vike/node_modules/.pnpm/postcss@8.4.23/node_modules/postcss/lib/parse.js:11:12)\n at new LazyResult (/home/rom/code/vike/node_modules/.pnpm/postcss@8.4.23/node_modules/postcss/lib/lazy-result.js:133:16)\n at Processor.process (/home/rom/code/vike/node_modules/.pnpm/postcss@8.4.23/node_modules/postcss/lib/processor.js:28:14)\n at doCompileStyle (/home/rom/code/vike/node_modules/.pnpm/@vue+compiler-sfc@3.2.33/node_modules/@vue/compiler-sfc/dist/compiler-sfc.cjs.js:17246:45)\n at Object.compileStyleAsync (/home/rom/code/vike/node_modules/.pnpm/@vue+compiler-sfc@3.2.33/node_modules/@vue/compiler-sfc/dist/compiler-sfc.cjs.js:17188:12)\n at transformStyle (/home/rom/code/vike/node_modules/.pnpm/@vitejs+plugin-vue@4.2.1_vite@4.3.5_vue@3.2.33/node_modules/@vitejs/plugin-vue/dist/index.cjs:2622:41)'
26
26
  };
@@ -1,10 +1,10 @@
1
1
  export const errVueHtml = {
2
- id: '/home/rom/code/vike/examples/vue-full-v1/pages/index/+Page.vue',
2
+ id: '/home/rom/code/vike/examples/vue-full/pages/index/+Page.vue',
3
3
  plugin: 'vite:vue',
4
4
  message: 'Element is missing end tag.',
5
5
  name: 'SyntaxError',
6
6
  stack: 'SyntaxError: Element is missing end tag.\n at createCompilerError (/home/rom/code/vike/node_modules/.pnpm/@vue+compiler-core@3.2.33/node_modules/@vue/compiler-core/dist/compiler-core.cjs.js:19:19)\n at emitError (/home/rom/code/vike/node_modules/.pnpm/@vue+compiler-core@3.2.33/node_modules/@vue/compiler-core/dist/compiler-core.cjs.js:1594:29)\n at parseElement (/home/rom/code/vike/node_modules/.pnpm/@vue+compiler-core@3.2.33/node_modules/@vue/compiler-core/dist/compiler-core.cjs.js:1146:9)\n at parseChildren (/home/rom/code/vike/node_modules/.pnpm/@vue+compiler-core@3.2.33/node_modules/@vue/compiler-core/dist/compiler-core.cjs.js:937:28)\n at parseElement (/home/rom/code/vike/node_modules/.pnpm/@vue+compiler-core@3.2.33/node_modules/@vue/compiler-core/dist/compiler-core.cjs.js:1125:22)\n at parseChildren (/home/rom/code/vike/node_modules/.pnpm/@vue+compiler-core@3.2.33/node_modules/@vue/compiler-core/dist/compiler-core.cjs.js:937:28)\n at parseElement (/home/rom/code/vike/node_modules/.pnpm/@vue+compiler-core@3.2.33/node_modules/@vue/compiler-core/dist/compiler-core.cjs.js:1125:22)\n at parseChildren (/home/rom/code/vike/node_modules/.pnpm/@vue+compiler-core@3.2.33/node_modules/@vue/compiler-core/dist/compiler-core.cjs.js:937:28)\n at Object.baseParse (/home/rom/code/vike/node_modules/.pnpm/@vue+compiler-core@3.2.33/node_modules/@vue/compiler-core/dist/compiler-core.cjs.js:852:23)\n at Object.parse (/home/rom/code/vike/node_modules/.pnpm/@vue+compiler-dom@3.2.33/node_modules/@vue/compiler-dom/dist/compiler-dom.cjs.js:3077:25)',
7
- loc: { file: '/home/rom/code/vike/examples/vue-full-v1/pages/index/+Page.vue', line: 2, column: 46 },
7
+ loc: { file: '/home/rom/code/vike/examples/vue-full/pages/index/+Page.vue', line: 2, column: 46 },
8
8
  pluginCode: "<template>\n <h1>Welcome to Vike<h1>\n This page is:\n <ul>\n <li>Rendered to HTML.</li>\n <li>Interactive. <Counter /></li>\n </ul>\n <p>\n <button @click=\"randomNavigation\">Random Page</button>\n </p>\n</template>\n\n<script lang=\"ts\" setup>\nimport Counter from '../../components/Counter.vue'\nimport { navigate } from 'vike/client/router'\n\nconst randomNavigation = () => {\n const randomIndex = Math.floor(Math.random() * 3)\n navigate(['/markdown', '/star-wars', '/hello/alice.js'][randomIndex])\n}\n</script>\n",
9
9
  frame: '1 | <template>\n2 | <h1>Welcome to Vike<h1>\n | ^\n3 | This page is:\n4 | <ul>'
10
10
  };
@@ -4,9 +4,9 @@ export const errVueJavascript = {
4
4
  loc: { line: 2, column: 7, index: 8 },
5
5
  pos: 8,
6
6
  plugin: 'vite:vue',
7
- id: '/home/rom/code/vike/examples/vue-full-v1/pages/index/+Page.vue',
7
+ id: '/home/rom/code/vike/examples/vue-full/pages/index/+Page.vue',
8
8
  pluginCode: "<template>\n <h1>Welcome to Vike</h1>\n This page is:\n <ul>\n <li>Rendered to HTML.</li>\n <li>Interactive. <Counter /></li>\n </ul>\n <p>\n <button @click=\"randomNavigation\">Random Page</button>\n </p>\n</template>\n\n<script lang=\"ts\" setup>\nimeport Counter from '../../components/Counter.vue'\nimport { navigate } from 'vike/client/router'\n\nconst randomNavigation = () => {\n const randomIndex = Math.floor(Math.random() * 3)\n navigate(['/markdown', '/star-wars', '/hello/alice.js'][randomIndex])\n}\n</script>\n",
9
9
  frame: '1 | <template>\n | ^\n2 | <h1>Welcome to Vike</h1>\n3 | This page is:',
10
- message: "[@vue/compiler-sfc] Missing semicolon. (2:7)\n\n/home/rom/code/vike/examples/vue-full-v1/pages/index/+Page.vue\n12 | \n13 | <script lang=\"ts\" setup>\n14 | imeport Counter from '../../components/Counter.vue'\n | ^\n15 | import { navigate } from 'vike/client/router.js'\n16 | ",
11
- stack: "SyntaxError: [@vue/compiler-sfc] Missing semicolon. (2:7)\n\n/home/rom/code/vike/examples/vue-full-v1/pages/index/+Page.vue\n12 | \n13 | <script lang=\"ts\" setup>\n14 | imeport Counter from '../../components/Counter.vue'\n | ^\n15 | import { navigate } from 'vike/client/router.js'\n16 | \n at instantiate (/home/rom/code/vike/node_modules/.pnpm/@babel+parser@7.21.8/node_modules/@babel/parser/src/parse-error/credentials.ts:62:21)\n at toParseError (/home/rom/code/vike/node_modules/.pnpm/@babel+parser@7.21.8/node_modules/@babel/parser/src/parse-error.ts:60:12)\n at TypeScriptParserMixin.raise (/home/rom/code/vike/node_modules/.pnpm/@babel+parser@7.21.8/node_modules/@babel/parser/src/tokenizer/index.ts:1490:19)\n at TypeScriptParserMixin.semicolon (/home/rom/code/vike/node_modules/.pnpm/@babel+parser@7.21.8/node_modules/@babel/parser/src/parser/util.ts:138:10)\n at TypeScriptParserMixin.parseExpressionStatement (/home/rom/code/vike/node_modules/.pnpm/@babel+parser@7.21.8/node_modules/@babel/parser/src/parser/statement.ts:1279:10)\n at TypeScriptParserMixin.parseExpressionStatement (/home/rom/code/vike/node_modules/.pnpm/@babel+parser@7.21.8/node_modules/@babel/parser/src/plugins/typescript/index.ts:3044:28)\n at TypeScriptParserMixin.parseStatementContent (/home/rom/code/vike/node_modules/.pnpm/@babel+parser@7.21.8/node_modules/@babel/parser/src/parser/statement.ts:643:19)\n at TypeScriptParserMixin.parseStatementContent (/home/rom/code/vike/node_modules/.pnpm/@babel+parser@7.21.8/node_modules/@babel/parser/src/plugins/typescript/index.ts:2887:20)\n at TypeScriptParserMixin.parseStatementLike (/home/rom/code/vike/node_modules/.pnpm/@babel+parser@7.21.8/node_modules/@babel/parser/src/parser/statement.ts:417:17)\n at TypeScriptParserMixin.parseModuleItem (/home/rom/code/vike/node_modules/.pnpm/@babel+parser@7.21.8/node_modules/@babel/parser/src/parser/statement.ts:354:17)"
10
+ message: "[@vue/compiler-sfc] Missing semicolon. (2:7)\n\n/home/rom/code/vike/examples/vue-full/pages/index/+Page.vue\n12 | \n13 | <script lang=\"ts\" setup>\n14 | imeport Counter from '../../components/Counter.vue'\n | ^\n15 | import { navigate } from 'vike/client/router.js'\n16 | ",
11
+ stack: "SyntaxError: [@vue/compiler-sfc] Missing semicolon. (2:7)\n\n/home/rom/code/vike/examples/vue-full/pages/index/+Page.vue\n12 | \n13 | <script lang=\"ts\" setup>\n14 | imeport Counter from '../../components/Counter.vue'\n | ^\n15 | import { navigate } from 'vike/client/router.js'\n16 | \n at instantiate (/home/rom/code/vike/node_modules/.pnpm/@babel+parser@7.21.8/node_modules/@babel/parser/src/parse-error/credentials.ts:62:21)\n at toParseError (/home/rom/code/vike/node_modules/.pnpm/@babel+parser@7.21.8/node_modules/@babel/parser/src/parse-error.ts:60:12)\n at TypeScriptParserMixin.raise (/home/rom/code/vike/node_modules/.pnpm/@babel+parser@7.21.8/node_modules/@babel/parser/src/tokenizer/index.ts:1490:19)\n at TypeScriptParserMixin.semicolon (/home/rom/code/vike/node_modules/.pnpm/@babel+parser@7.21.8/node_modules/@babel/parser/src/parser/util.ts:138:10)\n at TypeScriptParserMixin.parseExpressionStatement (/home/rom/code/vike/node_modules/.pnpm/@babel+parser@7.21.8/node_modules/@babel/parser/src/parser/statement.ts:1279:10)\n at TypeScriptParserMixin.parseExpressionStatement (/home/rom/code/vike/node_modules/.pnpm/@babel+parser@7.21.8/node_modules/@babel/parser/src/plugins/typescript/index.ts:3044:28)\n at TypeScriptParserMixin.parseStatementContent (/home/rom/code/vike/node_modules/.pnpm/@babel+parser@7.21.8/node_modules/@babel/parser/src/parser/statement.ts:643:19)\n at TypeScriptParserMixin.parseStatementContent (/home/rom/code/vike/node_modules/.pnpm/@babel+parser@7.21.8/node_modules/@babel/parser/src/plugins/typescript/index.ts:2887:20)\n at TypeScriptParserMixin.parseStatementLike (/home/rom/code/vike/node_modules/.pnpm/@babel+parser@7.21.8/node_modules/@babel/parser/src/parser/statement.ts:417:17)\n at TypeScriptParserMixin.parseModuleItem (/home/rom/code/vike/node_modules/.pnpm/@babel+parser@7.21.8/node_modules/@babel/parser/src/parser/statement.ts:354:17)"
12
12
  };
@@ -82,7 +82,7 @@ function getPrettyErrMessage(err) {
82
82
  const trail = /(?:\:|)(?:\s|$)/;
83
83
  // Remove "Transform failed with 1 error:" (redundant since we already print an intro message)
84
84
  errMsg = errMsg.split(reg([/Transform failed with \d* error(?:s|)/, trail], 'gi')).join('');
85
- // Remove "/home/rom/code/vike/examples/react-full-v1/components/Counter.tsx:1:8:" (redundant since we already print the filename)
85
+ // Remove "/home/rom/code/vike/examples/react-full/components/Counter.tsx:1:8:" (redundant since we already print the filename)
86
86
  const pos = /(?:\:\d+|)/;
87
87
  errMsg = errMsg.split(reg([id, pos, pos, trail], 'gi')).join('');
88
88
  errMsg = errMsg.split(reg([normalizeId(id), pos, pos, trail], 'gi')).join('');
@@ -1,13 +1,13 @@
1
1
  export { projectInfo };
2
2
  export type { ProjectTag };
3
3
  export { PROJECT_VERSION };
4
- declare const PROJECT_VERSION: "0.4.150-commit-d0822a3";
4
+ declare const PROJECT_VERSION: "0.4.150-commit-e6c3150";
5
5
  type PackageName = typeof projectInfo.npmPackageName;
6
6
  type ProjectVersion = typeof projectInfo.projectVersion;
7
7
  type ProjectTag = `[${PackageName}]` | `[${PackageName}@${ProjectVersion}]`;
8
8
  declare const projectInfo: {
9
9
  projectName: "Vike";
10
- projectVersion: "0.4.150-commit-d0822a3";
10
+ projectVersion: "0.4.150-commit-e6c3150";
11
11
  npmPackageName: "vike";
12
12
  githubRepository: "https://github.com/vikejs/vike";
13
13
  };
@@ -1,7 +1,7 @@
1
1
  export { projectInfo };
2
2
  export { PROJECT_VERSION };
3
3
  import { onProjectInfo } from './assertSingleInstance.js';
4
- const PROJECT_VERSION = '0.4.150-commit-d0822a3';
4
+ const PROJECT_VERSION = '0.4.150-commit-e6c3150';
5
5
  const projectInfo = {
6
6
  projectName: 'Vike',
7
7
  projectVersion: PROJECT_VERSION,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vike",
3
- "version": "0.4.150-commit-d0822a3",
3
+ "version": "0.4.150-commit-e6c3150",
4
4
  "scripts": {
5
5
  "dev": "tsc --watch",
6
6
  "build": "rimraf dist/ && pnpm run build:esm && pnpm run build:cjs",
@@ -16,7 +16,7 @@
16
16
  "@brillout/json-serializer": "^0.5.8",
17
17
  "@brillout/picocolors": "^1.0.10",
18
18
  "@brillout/require-shim": "^0.1.2",
19
- "@brillout/vite-plugin-import-build": "0.2.22-commit-7f1bb0a",
19
+ "@brillout/vite-plugin-import-build": "^0.3.1",
20
20
  "acorn": "^8.8.2",
21
21
  "cac": "^6.7.14",
22
22
  "es-module-lexer": "^1.3.0",