Solve vue running error if (process.env.NODE_ENV === 'production') and packaging error Error in plugin "gulp-shell"

startup error

<% if (process.env.NODE_ENV === 'production') {
    
     %> <% }else {
    
     %> <% } %>

Packaged error

  throw new TypeError('Invalid Version: ' + version);
    ^

TypeError: Invalid Version: E:\�����ļ�\����ϵͳ\vue-fahuoke>"node"  "E:\�����ļ�\����ϵͳ\vue-fahuoke\node_modules\.bin\\..\[email protected]@npm\bin\npm-cli.js" --version
6.14.4
    at new SemVer (E:\个人文件\管理系统\vue-fahuoke\node_modules\_semver@5.3.0@semver\semver.js:293:11)
    at Range.test (E:\个人文件\管理系统\vue-fahuoke\node_modules\_semver@5.3.0@semver\semver.js:1036:15)
    at Function.satisfies (E:\个人文件\管理系统\vue-fahuoke\node_modules\_semver@5.3.0@semver\semver.js:1085:16)
    at module.exports (E:\个人文件\管理系统\vue-fahuoke\build\check-versions.js:33:17)
    at Object.<anonymous> (E:\个人文件\管理系统\vue-fahuoke\build\build.js:2:28)
    at Module._compile (internal/modules/cjs/loader.js:776:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:787:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
[16:06:40] 'build' errored after 949 ms
[16:06:40] Error in plugin "gulp-shell"

1. Operating environment

The node version I use is 10.16.0 and
I can use nvm to switch the node version

//下载版本
nvm install v10.16.0
//查看版本
nvm list
//切换版本
nvm use v10.16.0

2. Start the project

It is recommended that you use Taobao Mirror

//在根目录下安装淘宝镜像
npm i -g cnpm --registry=https://registry.npm.taobao.org

//把原来的依赖删掉,然后运行
cnpm i

//启动项目 根据所安装的脚手架项目启动
//vue2.0
npm run dev
//vue2.x
npm run serve

Three, npm run build packaging error solution

Cause Analysis:

version problem

Solution:

Made some changes in semver.js (node_modules/semver/semver.js), the code is as follows:

// if ANY of the sets match ALL of its comparators, then pass
Range.prototype.test = function(version) {
    
    
    return true;//在这里return true
  if (!version)
    return false;

  if (typeof version === 'string')
    version = new SemVer(version, this.options);

  for (var i = 0; i < this.set.length; i++) {
    
    
    if (testSet(this.set[i], version, this.options))
      return true;
  }
  return false;
};

Remove the check version, and no error will be reported.
Re-run packaging

ps: There is no problem with the packaging premise

Guess you like

Origin blog.csdn.net/weixin_44982333/article/details/105455317