[node.js 安装]Node.js Error: Cannot find module ‘node-static’错误解决办法

时间:2019-08-19  来源:redis  阅读:

Cannot find module 问题

在测试WebRTC codelab的时候,运行codelab、complete、step1出错,抛出Error:

module.js:340
    throw err;
          ^
Error: Cannot find module "node-static"
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object. (X:、WebProjects、codelab、complete、step1、server.js:1:72)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)

看到StackOverflow上有人出主意“$ npm install connect@2.X.X”“$ npm install serve-static”云云,不起作用,在这里给出正确解决方案。

为何发生Cannot find module问题

首先明确全局模块的默认安装位置:


$npm root -g
X:、Program Files、nodejs、prefix、node_modules

接着查看全局模块的默认搜索路径:

$node
> global.module.paths
[ "X:、、Users、、Admin、、repl、、node_modules",
  "X:、、Users、、Admin、、node_modules",
  "X:、、Users、、node_modules",
  "X:、、node_modules" ]

发现两者并没有交集,难怪找不到。

nodejs 路径.png

接着在core-modules-sources/lib/module.js上下了个断点,发现Node.js默认还从下列路径搜索全局模块:

["Y:、、WebProjects、、codelab、、complete、、step1、、node_modules","Y:、、WebProjects、、codelab、、complete、、node_modules","Y:、、WebProjects、、codelab、、node_modules","Y:、、WebProjects、、node_modules","Y:、、node_modules","X:、、Users、、Admin、、.node_modules","X:、、Users、、Admin、、.node_libraries","Y:、、Program Files、、lib、、node"]


更加确定了我的猜想,默认的搜索路径并不包含模块的默认安装路径。

解决Cannot find module方案

那么解决方案就简单了,可以添加环境变量 NODE_PATH ,指向 npm root -g 给出的路径。也可以在WebStorm的项目配置上做一个项目级别的变量:

[node.js 安装]Node.js Error: Cannot find module ‘node-static’错误解决办法

http://m.bbyears.com/shujuku/63138.html

推荐访问:
相关阅读 猜你喜欢
本类排行 本类最新