Tag: 模块

npm安装如何工作

我使用Node.js(通过browserify )为我的每个Web应用程序,所有这些都有一些共同的依赖和其他特定于自己。 这些应用程序中的每一个都有一个package.json文件,用于指定所需模块的版本。 现在,我的应用程序的父文件夹中有一个/node_modules目录,它们都需要引用,然后我将特定于应用程序的模块放在该应用程序目录的一个node_modules文件夹中。 这在短期内工作正常,因为我的require()语句能够在文件结构中继续向上查找,直到find具有正确应用程序的node_modules目录为止。 当这个问题变得棘手的时候,我想回到一个旧的项目并运行npm install ,以确保它仍然可以find所需的所有依赖项。 (谁知道自父主目录层次以来发生了什么有趣的事情)。我的印象是npm install做到了这一点: 对于package.json列出的每个模块,首先检查它是否存在, 按照相同的方式向上移动目录 。 如果不是,则将其安装到本地node_modules目录(如有必要,创build该目录)。 但是,当我在应用程序文件夹中运行npm install时,它似乎在本地安装所有内容,而不pipe上游可能存在哪些内容。 这是正确的行为? (这可能还有另一个原因,比如我的package.json糟糕的版本语言)。 如果这是正确的行为,有没有办法让我的npm install行为像上面一样? 在每个应用程序中广泛地复制模块并不是什么大不了的事情,但是感觉混乱,并且使我无法对通用模块进行小的改进,也不必更新每个旧的package.json文件。 当然,这可能是一件好事…

Node.js似乎缺less了multipart模块

我正在尝试parsing表单数据,包括使用node.js http服务器上载文件。 我发现的所有教程types的文章都使用了require("multipart"); 包括multipart模块,但是当我尝试相同的时候,我得到: Error: Cannot find module 'multipart' 我也无法find它在当前的API文档 (虽然它在谷歌caching版本)。 那么,这个模块是否已经从标准安装中移除,或者还有其他的工作吗?

node.js:以任何方式导出文件中的所有函数(例如,启用unit testing),一个接一个

在node.js中,是否有任何快捷方式导出给定文件中的所有function? 我想做unit testing的目的,因为我的unit testing是从我的生产代码单独的文件。 我知道我可以通过手动导出每个function,如下所示: exports.myFunction = myFunction; 但是,我想知道是否有一个更简单/闪烁的方式来做到这一点。 (是的,我意识到模块化的原因,并不总是一个好主意,出口的所有function,但unit testing的目的,你确实希望看到所有的小function,所以你可以逐件testing)。 谢谢!

如何使Grunt Deploy使用全局NPM模块而不是本地模块

首先,我对npm和grunt很新。 我们有一个项目,我们正在使用Grunt来编译和生成输出文件。 我试图设置我们的生成服务器使用Grunt生成输出文件。 我们正在使用Windows与TFS源代码控制,并由于它的260个字符的path限制 ,我们无法检查到源代码pipe理( 因为它单独使用230个字符安装path )的grunt-bower-task模块。 当我从我的项目目录运行npm install时 ,它工作正常,并将以下必需模块安装到我的项目目录中的node_modules文件夹中: 咕噜 咕噜鲍尔任务 咕噜-的contrib罗盘 咕噜-的contrib-CONNECT 咕噜-的contrib-jshint 咕噜-的contrib-requirejs 咕噜-的contrib手表 然后当我从我的项目目录运行grunt部署一切都按预期工作。 虽然我可以简单地使运行npm install构build过程的一部分,但我不愿意,因为它需要几分钟时间才能下载所有文件,而且我不希望我们的构build依赖于可用的外部Web服务。 我已经看到, 您可以在本地或全局安装模块 ,所以我希望能够在生成服务器上全局安装模块,以便它们不需要直接在项目目录内的node_modules文件夹中运行grunt部署 。 我已经运行了npm install -g ,以及上面列出的每个模块的npm install -g [module] ,以及npm install -g grunt-cli 。 如果我做npm前缀-g,它会告诉我全局模块目录是C:\ Users [我的用户] \ AppData \ Roaming \ npm ,当我查看该目录的node_modules文件夹时,我看到所有的模块。 但是,当我运行grunt部署它抱怨: 致命错误:无法find本地咕噜声 如果我只包含* node_modules \ grunt *目录,那么我仍然得到这些错误: 没有find本地Npm模块“grunt-contrib-watch”。 是否安装? […]

node.js模块是否需要封装在模块模式中?

为了确保适当的隔离,我倾向于将每个在一个函数范围内写入的node.js模块进行封装: (function() { var express = require('express'); var jade = require('jade'); var moment = require('moment'); exports.someFunction = function() { // do something }; exports.otherFunction = function() { // do something else }; })(); 我已经做了一段时间了,但我有这样的感觉,node.js的模块系统实际上是为我做这个,或换句话说,上面的代码等同于下面的代码: var express = require('express'); var jade = require('jade'); var moment = require('moment'); exports.someFunction = function() { // do something }; exports.otherFunction […]

Node.JS导出函数没有对象封装

我正在查看Node.JS请求,并注意您可以使用 var request = require('request'); request(…) 但是,当我尝试做类似的模块,我尝试 exports = function() {} 这是行不通的。 我知道使用的唯一方法是 var request = require('request').request; request(…) 和 exports.request = function() {} 如何将整个导出设置为一个函数,而不是将函数添加到导出对象? 请求源代码中可能提供了一个提示,但是我发现很难弄清楚发生了什么事情。 你能帮我吗?

Node.js – 检查模块是否安装,而实际上并不需要它

在运行之前,我需要检查是否安装了“mocha”。 我想出了以下代码: try { var mocha = require("mocha"); } catch(e) { console.error(e.message); console.error("Mocha is probably not found. Try running `npm install mocha`."); process.exit(e.code); } 我不喜欢这个想法来捕捉exception。 有没有更好的办法?

你如何找出哪些NPM模块取决于你?

很容易看到特定模块依赖于哪些模块,但我似乎无法弄清楚如何查看哪些模块依赖于特定的模块。 有一个简单的方法来做到这一点? 如果是这样,有没有办法做到这一点编程?