| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- "use strict";
- var __importDefault = (this && this.__importDefault) || function (mod) {
- return (mod && mod.__esModule) ? mod : { "default": mod };
- };
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.resolveCompiler = exports.resolveVue = void 0;
- const path_1 = __importDefault(require("path"));
- const fs_extra_1 = __importDefault(require("fs-extra"));
- const pathUtils_1 = require("./pathUtils");
- const chalk_1 = __importDefault(require("chalk"));
- const fsUtils_1 = require("./fsUtils");
- let resolved = undefined;
- // Resolve the correct `vue` and `@vue.compiler-sfc` to use.
- // If the user project has local installations of these, they should be used;
- // otherwise, fallback to the dependency of Vite itself.
- function resolveVue(root) {
- if (resolved) {
- return resolved;
- }
- let vueVersion;
- let vueBasePath;
- let compilerPath;
- const projectPkg = JSON.parse(fsUtils_1.lookupFile(root, ['package.json']) || `{}`);
- let isLocal = !!(projectPkg.dependencies && projectPkg.dependencies.vue);
- if (isLocal) {
- try {
- const userVuePkg = pathUtils_1.resolveFrom(root, 'vue/package.json');
- vueBasePath = path_1.default.dirname(userVuePkg);
- vueVersion = fs_extra_1.default.readJSONSync(userVuePkg).version;
- isLocal = true;
- }
- catch (e) {
- // user has vue listed but not actually installed.
- isLocal = false;
- }
- }
- if (isLocal) {
- // user has local vue, verify that the same version of @vue/compiler-sfc
- // is also installed.
- try {
- const compilerPkgPath = pathUtils_1.resolveFrom(root, '@vue/compiler-sfc/package.json');
- const compilerPkg = require(compilerPkgPath);
- if (compilerPkg.version !== vueVersion) {
- throw new Error();
- }
- compilerPath = path_1.default.join(path_1.default.dirname(compilerPkgPath), compilerPkg.main);
- }
- catch (e) {
- // user has local vue but has no compiler-sfc
- console.error(chalk_1.default.red(`[vite] Error: a local installation of \`vue\` is detected but ` +
- `no matching \`@vue/compiler-sfc\` is found. Make sure to install ` +
- `both and use the same version.`));
- compilerPath = require.resolve('@vue/compiler-sfc');
- }
- }
- else {
- // user has no local vue, use vite's dependency version
- vueVersion = require('vue/package.json').version;
- vueBasePath = path_1.default.dirname(require.resolve('vue/package.json'));
- compilerPath = require.resolve('@vue/compiler-sfc');
- }
- const resolvePath = (name, from) => pathUtils_1.resolveFrom(from, `@vue/${name}/dist/${name}.esm-bundler.js`);
- // resolve nested dependencies with correct base dirs so that this works with
- // strict package managers - e.g. pnpm / yarn 2
- const runtimeDomPath = resolvePath('runtime-dom', vueBasePath);
- const runtimeCorePath = resolvePath('runtime-core', runtimeDomPath);
- const reactivityPath = resolvePath('reactivity', runtimeCorePath);
- const sharedPath = resolvePath('shared', runtimeCorePath);
- resolved = {
- version: vueVersion,
- vue: runtimeDomPath,
- '@vue/runtime-dom': runtimeDomPath,
- '@vue/runtime-core': runtimeCorePath,
- '@vue/reactivity': reactivityPath,
- '@vue/shared': sharedPath,
- compiler: compilerPath,
- isLocal
- };
- return resolved;
- }
- exports.resolveVue = resolveVue;
- function resolveCompiler(cwd) {
- return require(resolveVue(cwd).compiler);
- }
- exports.resolveCompiler = resolveCompiler;
- //# sourceMappingURL=resolveVue.js.map
|