vue-cli脚手架npm相关文件说明(8)check-versions.js

系列文章传送门:

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

时间: 2024-11-11 16:28:17

vue-cli脚手架npm相关文件说明(8)check-versions.js的相关文章

vue-cli脚手架npm相关文件说明(7)dev-server.js

系列文章传送门: 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/dev-server.js中相关

vue-cli脚手架npm相关文件说明(9)config/index.js

系列文章传送门: 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 下面是config/index.js中相关代码和配

vue-cli脚手架npm相关文件说明(6)build.js

下面是build/vue-loader.conf.js中相关代码和配置的说明 /* * npm run build 构建执行文件,主要用于生产环境 * 建议先查阅webapck.prod.conf.js */ // npm和node版本检查 require('./check-versions')() // 设置环境变量为production // process.env 是node环境内置的变量,在命令行里可以通过 set 变量名=值的方式来设置,等价于 set NODE_ENV='produc

vue-cli脚手架npm相关文件说明(5)vue-loader.conf.js

系列文章传送门: 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/vue-loader.conf.

vue-cli脚手架npm相关文件说明-2、webpack.prod.conf.js

下面介绍webpack.prod.conf.js中相关配置代码和配置的说明,建议先查阅build/webpack.prod.conf.js /* * Webpack 生产环境配置文件,用于生产环境执行Build * 执行Build 主要是用Webpack执行这里的配置 * 建议先查阅webapck.base.conf.js ../config/index.js */ var path = require('path') var utils = require('./utils') // 下面是u

vue.cli脚手架初次使用图文教程

vue.cli脚手架初次使用图文教程 我之前的环境是安装了node.js, 我记得曾经好像安装过vue ,不过现在又要重新开始学习起来了.在youtube上看了一vue的相关教程,还是需要实操的. 好像安装过npm -v 发现已经安装了5.6.0 需要安装然后使用 cnpm 安装 vue-cli 和 webpack 安装代码:npm install -g vue-cli 一.生成项目 首先需要在命令行中进入到项目目录,然后输入: vue init webpack vue-testone p.p1

web前端 -- vue -- vue cli脚手架

搭建 vue-cli 脚手架 1. 依赖的环境是:node.js 1.1.检测node和npm版本 node.js 官网下载页,选择 windows 系统 msi 安装版本,一路 next 安装. 要有6.9以上的node:node-v 要有3.10以上的npm:npm -v 附:安装node.js 1.2. 安装全局 vue cli Linux下使用命令:sudo npm install --global vue-cli windows下:npm install --global vue-cl

[Vue CLI 3] Uglify 相关的应用和设计

在本文开始之前,先留一个问题? 如果在新版本我想加一个 drop_console 的配置呢? 在老版本的脚手架生成的配置中,对于线上环境的文件:webpack.prod.conf.js 使用了插件:uglifyjs-webpack-plugin const UglifyJsPlugin = require('uglifyjs-webpack-plugin') 插件配置如下: plugins: [ new UglifyJsPlugin({ uglifyOptions: { compress: {

vue cli脚手架项目利用webpack给生产环境和发布环境配置不同的接口地址或者不同的变量值。

废话不多说,直接进入正题,此文以配置不同的接口域名地址为例子 项目根目录下有一个config文件夹,基础项目的话里面至少包括三个文件, 1.dev.env.js 2.index.js 3.prod.env.js 我们需要做配置的就是第一个和第三个. 其实这两个文件内容就是针对生产环境和发布环境设置不同的参数的文件,那么打开dev.en.js,开发环境.原本代码如下: 'use strict' const merge = require('webpack-merge') const prodEnv