Nodejs初学,请教node包管理,及模块载入两个问题。
Nodejs初学,请教node包管理,及模块载入两个问题。
下载别人的app,都有package.json,描述依赖包。然后根目录都有node_modules,里面放着需要的模块。我的疑问是,nodejs安装文件夹里也有node_modules。 1.nodejs里的modules是否是全局模块,能够被app优先调用。(我试过express无效,只好在app下建node_modules,把express复制过去,最后才跑起来) 2.如果1能行,那么多个app之中,调用同一个会不会出现问题。 3.用npm进行包安装,貌似不管cache中是存在,它都是重新下载,覆盖原先cache,不同版本不覆盖。 4.最后,如何管理安排模块,以致不过分重复。npm是否更智能点,从app里的pachage里,分析已有的模块,不重新下载。
ps:由于不是搞编程,但也算有点基础,想用node建一个网站自娱自乐。如果上面的问题多有描述不清,还请各位见谅。
1.nodejs的全局模块可以配置 2.不会 3.问题不明 4.看看module的加载机制吧,那些安装在全局,哪些配置在公共,那些私有使用,都能学到。等先看看node的加载查询机制,你甚至都能全部手工配置一个node服务环境在你的U盘里(node+mongoose+rock+inspect),方便携带,U盘打开就能一键运行带服务器带数据的应用。
3的话,我看下载过会有304提示,拿cache的啊。不会重新下吧。。?
很少用npm,都是直接去github上宕下来配置
粗略看了一下,细节却不明。你配置过到U盘?能否详细介绍…
相关的文章阅读了。不知是不是初学者的缘故,接受学习一样新鲜事事物时,听说了某些不好,然后自己又无法验证,偏偏自己又“貌似遇到了”,心里总是忐忑。唉,他们所说的,对我的理解只是“看上去很有根据”(其它人也提出反驳的证据)。估计初期我是无法弄懂的,假如能深入,或许不至又一次栽在学习的迷惘上。
针对你的问题,这里是一些解答和建议:
-
Node.js 中的
node_modules
目录:- 项目中的
node_modules
是当前项目的本地模块路径,而不是全局模块路径。全局模块可以被系统中的所有 Node.js 应用访问,但项目依赖的包通常应该放在本地的node_modules
目录中。 - 如果你在项目中使用了
express
模块,并且尝试运行时出现错误,可能是因为没有正确安装该模块。你可以通过运行npm install express
在项目中安装express
。
- 项目中的
-
多个应用共享同一模块:
- 你可以创建一个全局的
node_modules
目录,并将共享的模块放置在那里。然而,这需要一些额外的配置来确保 Node.js 可以找到这些模块。更常见的是,每个应用都独立地安装自己的node_modules
。
- 你可以创建一个全局的
-
npm 缓存:
- npm 默认会在
~/.npm
目录下缓存已下载的包。当再次安装相同版本的包时,npm 会直接从缓存中读取,而不会重新下载。 - 对于不同版本的包,npm 会根据
package.json
文件中的具体版本号决定是否覆盖缓存。
- npm 默认会在
-
模块管理:
- 使用
npm
进行包管理是最常见的做法。你可以在package.json
文件中列出所有依赖的包,并通过npm install
命令自动安装。 - 如果你想避免重复下载相同的包,确保每个项目都有自己的
package.json
文件,并只安装一次所需的依赖。
- 使用
示例代码(package.json
示例):
{
"name": "my-app",
"version": "1.0.0",
"dependencies": {
"express": "^4.17.1"
}
}
安装依赖:
npm install
以上步骤可以帮助你更好地管理和组织 Node.js 应用的模块依赖。