Version:v7.8.0 Platform:Darwin shankar.local 16.5.0 Darwin Kernel Version 16.5.0: Fri Mar 3 16:52:33 PST 2017; root:xnu-3789.51.2~3/RELEASE_X86_64 x86_64
const exec = require('child_process').spawnSync
try {
require.resolve('lodash.assign')
} catch (e) {
exec('npm', ['install', 'lodash.assign', '--save'], {
stdio: 'inherit'
})
}
//throw Cannot find module ‘lodash.assign’
require('lodash.assign')
假如不使用require.resolve,直接使用install安装再require没任何问题,但是只要用require.resolve执行一遍来检测模块是否存在,接下来再安装就报cannot find module错误。