资讯专栏INFORMATION COLUMN

vue-cli中配置webpack系列文章二 ------ check-versions.js

Eidesen / 2143人阅读

check-versions.js

  //定制控制台日志的输入样式
  var chalk = require("chalk")
    // 加载语义化版本测试库
  var semver = require("semver")
    // 引入package.json文件
  var packageConfig = require("../package.json")
  function exec(cmd) {
    // require("child_process")调用nodejs子进程,
    // execSync同步的exec方法执行command
    return require("child_process").execSync(cmd).toString().trim()
  }
  var versionRequirements = [{
    name: "node",
    // process.version是当前使用的node版本信息"v7.1.0"
    // semver.clean("  =v1.2.3   ")返回"1.2.3"
    // semver.clean(process.version)格式化返回当前使用的node版本信息"7.1.0"
    currentVersion: semver.clean(process.version),
    // 从package.json读取node版本要求
    versionRequirement: packageConfig.engines.node
  }, {
    name: "npm",
    currentVersion: exec("npm --version"),
    // 从package.json读取npm版本要求
    versionRequirement: packageConfig.engines.npm
  }]
  module.exports = function() {
    var warnings = []
    for (var i = 0; i < versionRequirements.length; i++) {
      var mod = versionRequirements[i]
        // 判断现有版本是否满足要求
      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()
      // 按照linux的规范,一般成功用0表示,而非0则表示失败。存在不满足版本要求的模块,执行失败
      process.exit(1)
    }
  }

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/109653.html

相关文章

  • vue-cli#4.7项目结构分析

    摘要:前言使用过进行项目开发的同学,一定知道或者使用过脚手架,他能够很好的搭建项目结构和工程,让我们能够把足够的精力放在业务开发上。对象提供一系列属性,用于返回系统信息返回当前进程的命令行参数数组。 前言 使用过 vue 进行项目开发的同学,一定知道或者使用过 vue-cli 脚手架,他能够很好的搭建项目结构和工程,让我们能够把足够的精力放在业务开发上。也正是因为这样,很多时候我们会因为项目...

    EastWoodYang 评论0 收藏0
  • vue-cli webpack配置分析

    相信vue使用者对vue-cli都不会陌生,甚至可以说,很熟悉了,但对其webpack的配置可能知之甚少吧。 过完年回来后,我接手了公司的新项目。新项目是一个spa。很自然,我就想到了vue-cli脚手架了,当时研究一下它的webpack配置。于是,就有了其他的内容。 今天这篇文章,是在原来的基础上,增加了一些新版本的内容,但实质上变化不大。 说明 此仓库为vue-cli webpack的配置分析...

    suemi 评论0 收藏0
  • 一字一句的搞懂vue-cli之vue webpack template配置

    摘要:神一样的存在。所以呢,就利用两天时间,参考了一些他人的文章,查阅了一些官方的配置,就在此先稍微记录一下。这份配置解析是基于最新版本的。不过,我非常建议,先别看我的文章,自己一句一句的通读一遍。和中的配置含义相似。 webpack--神一样的存在。无论写了多少次,再次相见,仍是初见。有的时候开发vue项目,对尤大的vue-cli感激涕零。但是,但是,但是。。。不是自己的东西,真的很不想折...

    atinosun 评论0 收藏0
  • vue基础与项目构建入门

    摘要:基础与项目构建入门最近两年,同学们出去讨论前端的框架,相信大家对也并不陌生,并称前端三大框架各有各的特色,在这里说一下,我们非常有必要学习这些东西,不管是求职面试,还是公司需要什么是读音,类似于是一套构建用户界面的渐进式框架。 vue基础与项目构建入门 最近两年,同学们出去讨论前端的框架,相信大家对vue也并不陌生,vue、angular、React并称前端三大框架!各有各的特色,在这...

    nevermind 评论0 收藏0
  • vue-cli 目录结构详细讲解

    摘要:前端开发过程中需要使用到后台的的话,可以通过配置来将相应的后台请求代理到专用的服务器。主要完成下面几件事情合并基础的配置配置样式文件的处理规则,配置的输出配置插件模式下的插件配置分析说明插件里面多了丑化压缩代码以及抽离文件等插件。 [toc] 目录 结构预览 ├─build // 保存一些webpack的初始化配置,项目构建 │ ├─build.js ...

    GHOST_349178 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<