node相关内容

npm

  1. npm 安装的模块会安装在node_modules文件夹中,我们通过npm下载的包,直接通过包名引入即可
  2. node在使用模块名字来引入模块是,它会首先在当前目录的node包中寻找是否含有该模块,如果有则直接使用,没有则去上一级node包中训中,知道找到为止,如果找到磁盘的根目录,依然没有,则报错
  3. ~和^的作用和区别是什么呢?
~会匹配最近的小版本依赖包,比如~1.2.3会匹配所有1.2.x版本,但是不包括1.3.0
^会匹配最新的大版本依赖包,比如^1.2.3会匹配所有1.x.x的包,包括1.3.0,但是不包括2.0.0
那么该如何选择呢?当然你可以指定特定的版本号,直接写1.2.3,前面什么前缀都没有,这样固然没问题,但是如果依赖包发布新版本修复了一些小bug,那么需要手动修改package.json文件;~和^则可以解决这个问题。
但是需要注意^版本更新可能比较大,会造成项目代码错误,比如这篇文章(http://blog.csdn.net/u014291497/article/details/54427103)的问题就是因为package.json使用^1.5.7造成的,1.6版本的包与现有代码不兼容。
所以建议使用~来标记版本号,这样可以保证项目不会出现大的问题,也能保证包中的小bug可以得到修复。
或者版本号写*,这意味着安装最新版本的依赖包,但缺点同上,可能会造成版本不兼容,慎用!

什么是包

  • 为了便于管理和使用,我们可以把有多个子模块组成的大模块称作包,并把所有子模块放在同一个目录里。
  • 组成一个包的所有子模块中,需要有一个入口模块,入口模块的导出对象被作为包的导出对象。
  • 默认包中的入口模块为index.js,也可以在包中新建一个package.json包描述文件,设置main属性值为模块的入口
  • 包等于项目,模块等于文件

package.json

  • 版本1.0.0(大版本号:做了不兼容修改或颠覆式的重写。中版本号:向下兼容的功能性新增 。小版本号:向下兼容的问题修正、修改bug。)
  • name:项目名称、version:版本号、description:项目描述、main:主模块、dependencies:依赖列表、devDependencies:开发时依赖、scripts:脚本命令,npm执行命令、
  • npm init创建

引入(require)

1. 引入自定义模块
var method = require('./method.js');
2. 引入第三方模块
var webpack = require('webpack');
1. 引入系统模块
var fs = require('fs');
  • 注意事项
1.当一个模块被多次引用时,只会执行一次,将暴露的对象写入缓存,可以重复使用
var method1 = require('./method.js');
var method2 = require('./method.js');
var method3 = require('./method.js');
var method4 = require('./method.js');

导出(export)

exports导出对象:
    作用:将模块中需要共享给其他模块的数据暴露到引用处
    语法:
        exports.属性名=值;
        exports.方法名=函数;
        
    注意:
        1.exports是module.exports对象的引用,指向同一个内存空间 module.exports===exports
        2.exports是module.exports的引用,不能改指向,只能添加属性和方法
        3.module.exports才是真正的暴露对象,指向哪里就暴露哪里(建议使用module.exports不会出错)

猜你喜欢

转载自www.cnblogs.com/Hsong/p/9768860.html