2022-02-14 模块化+require module npm发布包

1 使用强大的 require() 方法,可以加载需要的内置模块、用户自定义模块、第三方模块进行使用。

2 Node.js 中的模块作用域

1. 什么是模块作用域

和函数作用域类似,在自定义模块中定义的变量、方法等成员,只能在当前模块内被访问,这种模块级别的访问限制,叫做模块作用域。防止了全局变量污染的问题

2 向外共享模块作用域中的成员

1. module 对象

在每个 .js 自定义模块中都有一个 module 对象,它里面存储了和当前模块有关的信息,打印如下

console.log(module);
Module {
  id: '.',
  exports: {},//exports空对象
  parent: null,
  filename:
   'C:\\Users\\lijiyu\\Desktop\\lean\\nodeLean\\day2\\code\\10.演示module对象.js',
  loaded: false,
  children: [],
  paths:
   [ 'C:\\Users\\lijiyu\\Desktop\\lean\\nodeLean\\day2\\code\\node_modules',
     'C:\\Users\\lijiyu\\Desktop\\lean\\nodeLean\\day2\\node_modules',
     'C:\\Users\\lijiyu\\Desktop\\lean\\nodeLean\\node_modules',
     'C:\\Users\\lijiyu\\Desktop\\lean\\node_modules',
     'C:\\Users\\lijiyu\\Desktop\\node_modules',
     'C:\\Users\\lijiyu\\node_modules',
     'C:\\Users\\node_modules',
     'C:\\node_modules' ] }
2. module.exports 对象

在自定义模块中,可以使用 module.exports 对象,将模块内的成员共享出去,供外界使用。外界用 require() 方法导入自定义模块时,得到的就是 module.exports 所指向的对象。

3 Node.js 中的模块化规范

Node.js 遵循了 CommonJS 模块化规范,CommonJS 规定了模块的特性和各模块之间如何相互依赖。
CommonJS 规定:
① 每个模块内部,module 变量代表当前模块。
② module 变量是一个对象,它的 exports 属性(即 module.exports)是对外的接口。
③ 加载某个模块,其实是加载该模块的 module.exports 属性。require() 方法用于加载模块。

4. devDependencies 节点

如果某些包只在项目开发阶段会用到,在项目上线之后不会用到,则建议把这些包记录到 devDependencies 节点中。
与之对应的,如果某些包在开发和项目上线之后都需要用到,则建议把这些包记录到 dependencies 节点中。
您可以使用如下的命令,将包记录到 devDependencies 节点中:

// 简写
npm i 包名 -D
//完整写法
npm i 包名 --save-dev
// 都会进入devDependencies
  1. 项目包
    那些被安装到项目的 node_modules 目录中的包,都是项目包。
    项目包又分为两类,分别是:
    ⚫ 开发依赖包(被记录到 devDependencies 节点中的包,只在开发期间会用到)npm i 包名 -D
    ⚫ 核心依赖包(被记录到 dependencies 节点中的包,在开发期间和项目上线之后都会用到)npm i

3. npm与包

3.1 发布包

  1. 注册 npm 账号
    ① 访问 https://www.npmjs.com/ 网站,点击 sign up 按钮,进入注册用户界面
    ② 填写账号相关的信息:Full Name、Public Email、Username、Password
    ③ 点击 Create an Account 按钮,注册账号
    ④ 登录邮箱,点击验证链接,进行账号的验证

3.2. 登录 npm 账号

npm 账号注册完成后,可以在终端中执行 npm login 命令,依次输入用户名、密码、邮箱后,即可登录成功
注意:在运行 npm login 命令之前,必须
先把下包的服务器地址切换为 npm 的官方
服务器。否则会导致发布包失败!

3.3. 把包发布到 npm 上

将终端切换到包的根目录之后,运行 npm publish 命令,即可将包发布到 npm 上(注意:包名不能雷同)。

3.4. 删除已发布的包

运行 npm unpublish 包名 --force 命令,即可从 npm 删除已发布的包。
注意:
① npm unpublish 命令只能删除 72 小时以内发布的包
② npm unpublish 删除的包,在 24 小时内不允许重复发布
③ 发布包的时候要慎重,尽量不要往 npm 上发布没有意义的包!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容