47 lines
924 B
JavaScript
47 lines
924 B
JavaScript
const fs = require('fs');
|
|
const path = require('path');
|
|
|
|
|
|
function switchVersion(version) {
|
|
const pkg = require('../package.json');
|
|
if (version != 2) {
|
|
return;
|
|
}
|
|
|
|
delete pkg.exports;
|
|
|
|
const pkgStr = JSON.stringify(pkg, null, 2);
|
|
|
|
fs.writeFileSync(path.resolve(__dirname, '../package.json'), pkgStr, 'utf-8');
|
|
}
|
|
|
|
|
|
function loadModule(name) {
|
|
try {
|
|
return require(name);
|
|
} catch (e) {
|
|
return undefined;
|
|
}
|
|
}
|
|
|
|
const Vue = loadModule('vue');
|
|
|
|
function main() {
|
|
const version = process.env.npm_config_vueVersion || (Vue ? Vue.version : '2.7.');
|
|
if (!Vue || typeof version !== 'string') {
|
|
console.warn('Vue is not found. Please run "npm install vue" to install.');
|
|
return;
|
|
}
|
|
|
|
if (version.startsWith('2.')) {
|
|
switchVersion(2);
|
|
} else if (version.startsWith('3.')) {
|
|
switchVersion(3);
|
|
} else {
|
|
console.warn(`Vue version v${version} is not supported.`);
|
|
}
|
|
}
|
|
|
|
main();
|
|
|