我知道最好的npm安装是使用npm install
,但在我使用的专业服务器上是禁止的。另外,我必须通过脏git clone <node_module_git_repository>
安装我的node_modules。
通过git,我的模块被很好地复制并通过以下方式运行良好:
node ./node_modules/.bin/http-server
但是失败了:
node http-server
我收回错误:
module.js:340
throw err;
^
Error: Cannot find module '/data/yug/projects_active/make-modules/http-server'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:935:3
我认为没有做npm install会使我的节点模块不在路径中。 我如何通过node <module_name>
将git-cloned本地模块运行?
答案 0 :(得分:2)
你问的咒语是行不通的。 node
可执行文件需要执行javascript文件的路径。路径可以相对于当前工作目录或绝对,但就是这样。它不会像node_modules
那样在node.js程序中搜索require
或NODE_PATH。
当您运行./node_modules/.bin/http-server
时,您的shell正在执行该文件,该文件以诸如#!/usr/bin/env node
之类的shebang行开头,它处理正在运行的节点并为您传递http-server
文件的路径
如果您希望node http-server
能够工作,请在make-modules目录中创建一个符号链接:cd make-modules && ln -nsf ./node_modules/.bin/http-server
。