Node-常用的包

2019-06-11  本文已影响0人  zhouhao_180

一、全局包

1.1 nodemon npm i nodemon -g
1.2 cnpm npm i cnpm -g

二、本地项目包

2.1 express npm i express -S
2.1 express npm i ejs-S
2.1 express npm i art-template -S
2.1 express npm i express-art-template -S
2.1 express npm i mysql -S

查询已安装的包(全局)
C:\Users\Administrator\AppData\Roaming\npm

包路径.png

模块加载机制

第一次会缓存到内存中,下次 优先从缓存中加载,提高加载速度

核心模块的加载机制

  • 先查找缓存;如果缓存中没有,再去加载核心模块;

用户模块的加载机制

  • 先查找缓存;
  • 如果缓存中没有则尝试加载用户模块;
  • 如果在加载用户模块时候省略了后缀名,则:
    首先,严格按照指定的名称去查找
    其次,尝试加载后缀名是 .js 的文件
    如果没有.js的文件,则尝试加载 .json 结尾的文件
    如果没有 .json 的文件,则尝试加载 .node 结尾的文件
    查找规则:index  ->  index.js   ->   index.json   ->  index.node

第三方模块的加载机制

  1. 先在项目根目录中查找node_modules文件夹
  2. 在node_modules文件夹下,查找模块相关的文件夹
  3. 在对应的文件夹下,查找package.json的文件
  4. 查找package.json文件中的main属性(指定了模块的入口文件)
  5. 如果找到了main属性,同时,main属性指定的文件路径存在,那么尝试加载指定的文件模块
  6. 加入没有main属性,或者main属性对应的文件不存在,或者没有package.json,那么会依次尝试加载index.js,index.json,index.node;
  7. 如果没有index相关的文件,或者没有指定模块对应文件夹,或者,当前项目根目录中没有node_modules文件夹,则向上一层目录中查找node_modules,查找规则同上!(所以项目根目录有node_modules及相关的包就行)
  8. 最后,如果在项目所在磁盘的盘符根目录中,还找不到对应模块,则报错:cannot find module ***
上一篇下一篇

猜你喜欢

热点阅读