安装没有命令的节点扩展

我正在公司实习。
我需要创build一个节点服务器。
我在电脑上安装了节点(Windows),我应该安装一些插件,如:
– nodejs-webpack
– 颜色
– uglify

通常我需要input如下命令: npm install "theModule"
但软件无法访问互联网(由于公司的限制),支持服务无法授权软件(或不想)。

我可以用其他方式安装模块吗? (例如从Google下载并在正确的文件夹中滑动存档)。


如果答案是否定的,你知道我该如何解决这个安全问题?

你需要一个私有的npm存储库。

看看这个答案:

你可以主持一个私人存储库供贵组织使用npm吗?

我find了 !

例如,我们将安装'nodejs-websocket':
1)你只需要在这里下载。
2)把文件放到Node的目录下(对我来说是“C:\ Program Files \ nodejs \ node_modules \ npm \ node_modules”)
3)在你的.js文件中添加下面这行: var ws = require("C:/Program Files/nodejs/node_modules/npm/node_modules/nodejs-websocket/")

完成! 感谢所有:D

我把这个添加为你自己的答案的评论,但我想我应该添加一个更好的解释一个真实的答案。

通常,在运行npm install package-name npm会将程序包安装到node_modules目录中的node_modules目录中。 因此,如果您的应用程序位于C:\code\my-app那么您将进入该目录并运行npm install package-name 。 这将在C:\code\my-app\node_modules创build一个node_modules目录(如果它尚不存在)。 然后,它将在C:\code\my-app\node_modules\package-name安装到该目录中。

只要该模块位于您的应用程序的node_modules目录中,就可以在您的代码中要求该模块,而无需input较长的文件path。

 var ws = require('nodejs-websocket'); 

手动安装模块的地方是全局的node_modules目录。 如果你使用npm install -g package-name ,npm会安装一个模块。 安装npm时,全局node_modules目录会添加到您的系统path中。 换句话说,在那里安装的任何模块都可以像命令行一样从命令行访问。 例如:

 npm install -g bower 

这会将“bower”包安装到全局的npm模块目录中。 鲍尔将作为一个命令行工具供您使用。 例如:

 bower install angularjs 

全局目录更像这样的工具,而不是真正用于你打算在你的代码中使用的模块。 从技术上讲,你可以像任何时候一样,通过在require调用中包含完整path来从任何地方需要一个模块,但是标准的做法是把它放在应用程序根目录下的node_modules目录中,然后只需要它的名字和不是一个完整的path。


编辑:这是另一个提示,你可能也想利用。

当您通常使用npm install package-name安装模块时,您的应用程序的根目录通常会有一个package.json文件。 如果是这样,你可以做npm install package-name --save和npm将package-name模块添加到应用程序的package.json文件的列表中。 一旦你的应用程序的package.json文件中列出了一个模块,就称之为应用程序的“依赖”,因为它基本上说你的应用程序依赖package-name

通常情况下,当你有package.json列出的依赖项时,你可以完全删除你的应用程序的node_modules目录,然后在你的应用程序的根目录下运行npm install ,npm将自动安装它在你的应用程序的package.json文件中列出的所有依赖项。 由于您的企业防火墙不允许这种模块的自动下载,您将不会获得这种好处。 但遵循相同的惯例仍然是一个好习惯。

创buildpackage.json文件的一个技巧就是手动将你的依赖项安装到你的应用程序的node_modules目录中。 一旦你的应用程序需要模块,你可以通过运行npm init来指示npm为你的应用程序创build一个package.json文件。 它会引导你通过一些小的提示来填写你的package.json文件,并提供关于你的应用程序的细节。 然后,它会查看你的node_modules目录,看看你是否已经在有package.json文件之前安装了任何模块。 如果find,它会自动将它们添加到它创build的package.json文件中的依赖项字段中:D

使用适当的package.json ,即使您的node_modules目录被删除,您node_modules可以获得应用程序所需依赖项的完整列表。 通常,人们将其应用程序的node_modules目录添加到.gitignore文件中,只检查package.json文件。 这样他们就不会将它们的依赖关系存储在源代码控制中,但是它们仍然可以轻松地安装在克隆它的新机器上,只需在应用程序的目录中运行npm install即可。 在你的情况,虽然你可能只想添加node_modules到你的源代码控制,因为你不能让npm自动安装依赖关系。