Javascript 不使用命令安装节点扩展
我正在一家公司实习。Javascript 不使用命令安装节点扩展,javascript,node.js,Javascript,Node.js,我正在一家公司实习。 我需要创建一个节点服务器。 我在计算机(Windows)上安装了node,应该安装一些插件,如: -nodejs网页包 -颜色 -丑陋的 通常我需要输入如下命令:npm安装“theModule” 但该软件无法访问互联网(由于公司限制)和支持服务无法授权该软件(或不希望) 我可以用任何其他方式安装模块吗?(例如,从谷歌下载并将幻灯片归档到正确的文件夹中) 如果答案是“否”,您知道我如何绕过此安全性吗?您需要一个专用npm存储库 看看这个答案: 我找到了 举个例子,我们将安
我需要创建一个节点服务器。
我在计算机(Windows)上安装了node,应该安装一些插件,如:
-nodejs网页包
-颜色
-丑陋的
通常我需要输入如下命令:
npm安装“theModule”
但该软件无法访问互联网(由于公司限制)和支持服务无法授权该软件(或不希望) 我可以用任何其他方式安装模块吗?(例如,从谷歌下载并将幻灯片归档到正确的文件夹中)
如果答案是“否”,您知道我如何绕过此安全性吗?您需要一个专用npm存储库 看看这个答案: 我找到了
举个例子,我们将安装'nodejs websocket':
1) 您只需下载即可。
2) 将文件放入节点的目录(对我来说是“C:\Program files\nodejs\Node\u modules\npm\Node\u modules”)
3) 在.js文件中,只需添加以下行:
var ws=require(“C:/Program Files/nodejs/node\u modules/npm/node\u modules/nodejs websocket/”)
完成!谢谢大家:D我添加了这个作为对您自己答案的评论,但我想我应该添加一个真实的答案,并提供更好的解释 通常,当您运行
npm install package name
npm时,会将软件包安装到此时所在目录中的node\u modules
目录中。因此,如果您的应用程序位于C:\code\my app
,那么您将cd
进入该目录并运行npm install package name
。这将在C:\code\my app\node\u modules
处创建一个node\u modules
目录,如果它不存在的话。然后它将包名
安装到C:\code\my app\node\u modules\package name
的目录中
只要模块位于应用程序的node\u modules
目录中,您就可以在代码中要求该模块,而无需输入长文件路径
var ws = require('nodejs-websocket');
手动安装模块的位置是全局节点\u modules
目录。如果您安装了npm install-g package name
,npm就会在这里安装模块。安装npm时,全局节点\u modules
目录将添加到系统路径中。换句话说,您在其中安装的任何模块都可以像其他任何命令一样从命令行访问。例如:
npm install -g bower
bower install angularjs
这将把“bower”包安装到全局npm模块目录中。Bower将作为命令行工具供您使用。例如:
npm install -g bower
bower install angularjs
全局目录更多的是用于类似的工具,而不是用于您打算在代码中使用的模块。从技术上讲,您可以像以前一样,通过在require
调用中包含完整路径,从任何地方需要模块,但标准做法是将其放置在应用程序根目录中的node\u modules
目录中,然后只需要其名称而不是完整路径
编辑:这里还有另一个技巧,您可能也想利用它 通常使用
npm安装包名称安装模块时,应用程序的根目录下通常有一个package.json
文件。如果有,您可以执行npm安装包名--save
,npm将包名
模块添加到应用程序的package.json
文件的列表中。一旦某个模块在你的应用程序的package.json
文件中列出,它就被称为你的应用程序的“依赖项”,因为它基本上说你的应用程序依赖于package name
通常,当您在package.json
中列出依赖项时,您可以完全删除应用程序的node\u modules
目录,然后只需从应用程序的根目录中运行npm install
,npm将自动安装在应用程序的package.json
文件中列出的所有依赖项。由于您的公司防火墙不允许自动下载模块,因此您将无法获得该好处。然而,遵循同样的惯例仍然是一种良好的做法
创建package.json
文件的一个技巧是手动将依赖项安装到应用程序的node\u modules
目录中。一旦你有了应用程序所需的模块,你可以指示npm通过运行npm init
为你的应用程序创建一个package.json
文件。它将引导您通过一些小提示来填写您的package.json
文件,其中包含有关应用程序的详细信息。然后,它将查看您的node\u modules
目录,查看您在拥有package.json
文件之前是否已经安装了任何模块。如果找到了,它会自动将它们添加到它创建的package.json
文件中的dependencies字段中:D
有了一个合适的package.json
,即使你的节点模块
目录被删除了,你也会有一个你的应用程序需要的依赖关系的整洁列表。通常,人们会将应用程序的节点\ u模块
目录添加到.gitignore
文件中,只检查包.json
文件。通过这种方式,它们不会将依赖项存储在源代码管理中,但仍然可以通过在应用程序目录中运行npm install
轻松地安装到克隆依赖项的新机器上。在您的情况下,您可能只想将node\u模块
添加到源代码管理中,因为您不能让npm自动安装依赖项。好的,谢谢,那么私有npm存储库的工作方式与Cydia中的存储库类似吗?它将为我提供一个具有某些节点扩展的替代“市场”,对吗?这可能不起作用,因为您仍然需要使用诸如npm install couchapp
和npm install semver
之类的命令