• build 文件夹中的 check-versions.js


     1 //此文件是检查node+npm的版本 在build.js里面使用
     2 'use strict'
     3 const chalk = require('chalk') //导入chalk模块 用来改变字体颜色
     4 const semver = require('semver') //导入semver即语义化版本 用来控制版本
     5 const packageConfig = require('../package.json') //导入package.json,用于获取项目需要node+npm的版本
     6 const shell = require('shelljs') //导入shelljs模块 用来执行unix命令
     7 
     8 //封装方法 用来获取纯净的版本号
     9 //child_process是node用来创建子进程 execSync是创建同步进程
    10 function exec(cmd) {
    11   return require('child_process').execSync(cmd).toString().trim()
    12 }
    13 
    14 //node版本信息
    15 const versionRequirements = [{
    16   name: 'node', //名称是Node
    17   currentVersion: semver.clean(process.version), //当前的node版本号
    18   versionRequirement: packageConfig.engines.node //要求的node版本号
    19 }]
    20 
    21 if (shell.which('npm')) {
    22   // 将npm添加到versionRequirements
    23   versionRequirements.push({
    24     name: 'npm', //名称是npm
    25     currentVersion: exec('npm --version'), //纯净的当前npm版本号
    26     versionRequirement: packageConfig.engines.npm //要求的npm版本号
    27   })
    28 }
    29 
    30 module.exports = function () {
    31   const warnings = []
    32 
    33   for (let i = 0; i < versionRequirements.length; i++) {
    34     const mod = versionRequirements[i]
    35 
    36     // 如果当前版本号不符合要求的版本号,那么就将提示信息添加到wranings
    37     if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) {
    38       warnings.push(mod.name + ': ' +
    39         chalk.red(mod.currentVersion) + ' should be ' +
    40         chalk.green(mod.versionRequirement)
    41       )
    42     }
    43   }
    44 
    45   // 如果有 warnings 那么就打印出来
    46   if (warnings.length) {
    47     console.log('')
    48     console.log(chalk.yellow('To use this template, you must update following to modules:'))
    49     console.log()
    50 
    51     for (let i = 0; i < warnings.length; i++) {
    52       const warning = warnings[i]
    53       console.log('  ' + warning)
    54     }
    55 
    56     console.log()
    57 
    58     //执行失败
    59     process.exit(1)
    60   }
    61 }
  • 相关阅读:
    函数计算入门-HelloWorld应用开发
    Linux指令入门-文本处理
    计算机网络概述
    管理Linux服务器用户和组
    jQuery事件对象和js对象创建(使用构造函数的方式)
    jQuery操作页面元素之css style操作
    jQuery操作页面元素之包装元素
    jQuery操作页面元素之元素插入
    jQuery操作页面元素之元素内容操作
    Qt中的信号和槽函数。
  • 原文地址:https://www.cnblogs.com/zhuyujie/p/14074600.html
Copyright © 2020-2023  润新知