1. 程式人生 > >vue-cli腳手架npm相關文件說明(8)check-versions.js

vue-cli腳手架npm相關文件說明(8)check-versions.js

str target 指定 hal lean 插件 代碼 push should

系列文章傳送門:

1、build/webpack.base.conf.js

2、build/webpack.prod.conf.js

3、build/webpack.dev.conf.js

4、build/utils.js

5、build/vue-loader.conf.js

6、build/build.js

7、build/dev-server.js

8、build/check-versions.js

9、../config/index.js

下面是build/check-versions.js中相關代碼和配置的說明

/*
 * 版本驗證工具
 *
*/

var chalk = require(‘chalk‘)
// 下面這個是semver插件,是用來對特定的版本號做判斷的,比如 // semver.gt(‘1.2.3‘,‘9.8.7‘) false 1.2.3版本比9.8.7版本低 // semver.satisfies(‘1.2.3‘,‘1.x || >=2.5.0 || 5.0.0 - 7.2.3‘) true 1.2.3的版本符合後面的規則 var semver = require(‘semver‘) var packageConfig = require(‘../package.json‘) var shell = require(‘shelljs‘) // 腳本可以通過 child_process 模塊新建子進程,從而執行 Unix 系統命令
//下面這段代碼實際就是把cmd這個參數傳遞的值,轉化成前後沒有空格的字符串,也就是版本號 function exec (cmd) { return require(‘child_process‘).execSync(cmd).toString().trim() } var versionRequirements = [ { name: ‘node‘, currentVersion: semver.clean(process.version), // 當前環境版本,使用semver插件把當前環境版本信息轉化成規定格式,也就是 ‘ =v1.2.3 ‘ -> ‘1.2.3‘ 這種功能
versionRequirement: packageConfig.engines.node // 要求的版本,這是規定的pakage.json中engines選項的node版本信息 "node":">= 4.0.0" }, ] // npm環境中 if (shell.which(‘npm‘)) { versionRequirements.push({ name: ‘npm‘, currentVersion: exec(‘npm --version‘), // 執行方法得到版本號 versionRequirement: packageConfig.engines.npm // 要求的版本 }) } module.exports = function () { var warnings = [] for (var i = 0; i < versionRequirements.length; i++) { var mod = versionRequirements[i] //上面這個判斷就是如果版本號不符合package.json文件中指定的版本號,就執行下面的代碼 if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) { warnings.push(mod.name + ‘: ‘ + chalk.red(mod.currentVersion) + ‘ should be ‘ + chalk.green(mod.versionRequirement) ) } } if (warnings.length) { console.log(‘‘) console.log(chalk.yellow(‘To use this template, you must update following to modules:‘)) console.log() for (var i = 0; i < warnings.length; i++) { var warning = warnings[i] console.log(‘ ‘ + warning) } console.log() process.exit(1) } }

參考:http://www.cnblogs.com/ye-hcj/archive/2017/06.html

vue-cli腳手架npm相關文件說明(8)check-versions.js