关于解决问题的思路

缘由: 最近尝试用nuxt搭建个人博客,在修改的时候报错

PS E:	est333log-fontend> npm run build

> nuxt_express@1.0.0 build E:	est333log-fontend
> nuxt build && backpack build

E:	est333log-fontend
ode_modules
uxtlibuilderuilder.js:32
const glob = promisify(Glob)
             ^

TypeError: promisify is not a function
    at Object.<anonymous> (E:	est333log-fontend
ode_modules
uxtlibuilderuilder.js:32:14)
    at Module._compile (module.js:571:32)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:488:32)
    at tryModuleLoad (module.js:447:12)
    at Function.Module._load (module.js:439:3)
    at Module.require (module.js:498:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (E:	est333log-fontend
ode_modules
uxtlibuilderindex.js:1:79)
    at Module._compile (module.js:571:32)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:488:32)
    at tryModuleLoad (module.js:447:12)
    at Function.Module._load (module.js:439:3)
    at Module.require (module.js:498:17)
    at require (internal/module.js:20:19)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! nuxt_express@1.0.0 build: `nuxt build && backpack build`
npm ERR! Exit status 1

可见错误是发生在node_modules内部的 nuxt库 原因是promisify is not a function

一般情况下,一般同学可能到这一步就会束手无策了,因为毕竟这库不是我们写的,错了跟我们有什么关系

我们尝试解决一下,

顺着路径点击进去相应的文件发现

const { promisify } = require('util')

所以我们认为是util这个包没有,从而导致promisify未空

我们首先去package.json搜索 util 但是并没有找到

此时我们考虑这个 包 是否是node自带的,

经过查看 node v8.9.3 文档 发现果然有这个方法

而这个库是在>node8.0才有的,所以再看一下我们本地node 版本 发现低于8.0 只需要升级版本即可

而我们再看一下 nuxt的package.json里 也印证了这一点

  "engines": {
    "node": ">=8.0.0",
    "npm": ">=5.0.0"
  },

到此问题解决:只需要升级node版本……

原文地址:https://www.cnblogs.com/WhiteHorseIsNotHorse/p/8298544.html