首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何派生和开发全球安装的Node.js NPM包?

如何派生和开发全球安装的Node.js NPM包?
EN

Stack Overflow用户
提问于 2014-01-25 21:19:34
回答 3查看 1.3K关注 0票数 1

我正在尝试为我喜欢的NPM包创建一个修复程序,Wintersmith。然而,Wintersmith应该是全局安装的(可用wintersmith <command>执行),而且我似乎无法从项目的根目录运行它,在这个项目中,我使用类似node ./node_modules/wintersmith/bin/wintersmithgit clone <my fork url>在本地手动安装它,而不会收到路径错误:

代码语言:javascript
复制
module.js:340
throw err;
      ^
Error: Cannot find module '../lib/cli/'
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.<anonymous> (F:\web\wintersmith\node_modules\bin\wintersmith:3:1)
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)

我想要正确开发和测试它的唯一方法是手动将我的全局安装的Wintersmith包替换为我的forked版本,然后使用该版本执行命令,以测试我的更改是否有效。

在使用/开发全局NPM包时,是否遗漏了一些工作流程步骤?

EN

回答 3

Stack Overflow用户

发布于 2014-01-25 21:44:55

您应该使用npm install git:// git clone而不是

像这样安装你的fork:

代码语言:javascript
复制
npm install git://github.com/YOURNAME/wintersmith.git

您也可以使用-g__将其安装为全局模块:

代码语言:javascript
复制
npm install -g git://github.com/YOURNAME/wintersmith.git
票数 1
EN

Stack Overflow用户

发布于 2014-01-25 21:25:08

NodeJS读取环境变量NODE_PATH。除了PATH之外,您还可以使用它。

本文档更好地描述了它:http://nodejs.org/api/modules.html#modules_loading_from_the_global_folders

票数 0
EN

Stack Overflow用户

发布于 2014-01-25 21:32:48

我可以像这样执行wintersmith,而不必全局安装它:

代码语言:javascript
复制
$ git clone https://github.com/jnordberg/wintersmith.git
$ cd wintersmith
$ npm install               # This installs all dependencies I need for the next step.
$ npm run-script prepublish # Run the prepublish script which compiles sources to ./lib
$ bin/wintersmith

当没有任何参数作为参数传递时,我得到它给出的用法消息。

在创建要全局安装的节点包时,可以并且希望将其设计为可以在不安装的情况下运行和测试。令我惊讶的是,wintersmith不是这样设计的。

一般来说,如果我必须处理一个没有全局安装就无法测试的节点包,我会称之为“有缺陷的”。(也许有例外,但这种例外很少见,应该在包的文档中证明它们是合理的。)

因此,通常情况下,如果我必须处理一个没有全局安装就无法运行和测试的包,我会寻找一个具有相同功能的包,它可以在没有全局安装的情况下运行,或者修复有问题的包。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21351080

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档