Windows 10的节点模块路径执行

时间:2018-08-29 23:56:34

标签: node.js windows

$ npm install -g static-server
C:\Users\Stuart's\AppData\Roaming\npm\static-server -> C:\Users\Stuart's\AppData\Roaming\npm\node_modules\static-server\bin\static-server.js
+ static-server@2.2.1
added 13 packages from 6 contributors in 1.238s

Stuart's@Stuarts-PC MINGW64 ~/Documents/GitHub/PIES-Network/dapp (master)
$ static-server
module.js:549
    throw err;
    ^

Error: Cannot find module 'C:\c\Users\Stuart's\AppData\Roaming\npm\node_modules\static-server\bin\static-server.js'
    at Function.Module._resolveFilename (module.js:547:15)
    at Function.Module._load (module.js:474:25)
    at Function.Module.runMain (module.js:693:10)
    at startup (bootstrap_node.js:191:16)
    at bootstrap_node.js:612:3

显然“ C:\ c \ User ..”不是指向我的节点模块目录的正确路径。我已经检查了我的本地路径,一切看起来都很好。感谢您的任何帮助

1 个答案:

答案 0 :(得分:1)

这看起来很像您不小心创建了一个名为C:\c\Users\Stuart's\AppData\Roaming\npm的目录,该目录位于文件static-server.cmd中。您还可以通过某种方式指向该路径变量。

调用static-server时,会将控制权传递到此错误位置的static-server.cmd批处理文件。

node 'C:\c\Users\Stuart's\AppData\Roaming\npm\node_modules\static-server\bin\static-server.js

但是static-server.js的位置与您的安装位置相同:

C:\Users\Stuart's\AppData\Roaming\npm\node_modules\static-server\bin\static-server.js

在这些情况下,您将完全得到显示的错误。

这可能有所不同,我很乐意提供进一步的帮助,但是第一步是要检查上面的内容,因为可以确保将错误的path参数传递给节点(当然是加载并执行static-server.js

编辑:以下是一些进一步的测试:

  1. 在硬盘上搜索“静态服务器”的所有实例。 尝试使用资源管理器执行此操作将花费很长时间。 最好和最快的方法是下载一个名为UltraSeach的工具。

    这是我PC上的搜索结果(出于测试目的,我创建了额外的C:\ c目录)。

enter image description here

  1. 检查static-server.cmd的多个版本或该名称的其他可执行文件。

  2. 使用文本编辑器(如记事本)打开每个static-server.cmd文件,并将这些ECHO命令添加到顶部 (即在以@IF EXIST "%~dp0\node.exe" (

    开头的一行之前,

    ECHO "File 1 executing"

    ECHO "%~dp0"

    PAUSE

如果有多个版本,请放入“文件2”,“文件3”等。

  1. 现在在命令提示符下键入static-server,它应该 回显消息“正在执行文件n” 回显正在执行的目录 等你按一个键继续.....

    注意正在执行的目录(称其为\ CURRENT)

  2. 您可以从static-server.cmd中看到它随后启动了节点 并尝试执行\ CURRENT \ node_modules \ static-server \ bin \ static-server.js

    在您的情况下,它找不到节点希望在其中找到的static-server.js。

  3. 回顾步骤1中的搜索结果,并查看static-server.js的实际位置。 将其与节点希望在步骤5中找到它的位置进行比较。

您的问题是: 被执行的static-server.cmd位于错误的位置或 static-server.js放在错误的位置。

  1. 这是一项附加测试。打开命令窗口,然后导航到包含static-server.js的目录。根据屏幕截图,在我的情况下,它位于C:\Users\Brendan\AppData\Roaming\npm\node_modules\static-server\bin

然后输入node static-server.js。这将完全绕开static-server.cmd文件,并应启动服务器。以我的情况工作。

让我知道你的生活!