关于解决问题的思路
缘由: 最近尝试用nuxt搭建个人博客,在修改的时候报错
PS E:\test333\blog-fontend> npm run build
> nuxt_express@1.0.0 build E:\test333\blog-fontend
> nuxt build && backpack build
E:\test333\blog-fontend\node_modules\nuxt\lib\builder\builder.js:32
const glob = promisify(Glob)
^
TypeError: promisify is not a function
at Object.<anonymous> (E:\test333\blog-fontend\node_modules\nuxt\lib\builder\builder.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:\test333\blog-fontend\node_modules\nuxt\lib\builder\index.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版本……