• node (02 CommonJs 和 Nodejs 中自定义模块)顺便讲讲module.exports和exports的区别 dependencies 与 devDependencies 之间的区别


    CommonJS 规范的提出,主要是为了弥补当前 JavaScript 没有标准的缺陷。它的终极目标就是:提供一个类似 Python,Ruby 和 Java 语言的标准库,而不只是停留在小脚本程序的阶段。

    CommonJS 就是模块化的标准,nodejs 就是 CommonJS(模块化)的实现。Node 应用由模块组成,采用 CommonJS 模块规范。

    node.js 模块

        一类是node提供的模块称为核心模块--》如http,url,fs等,可直接引入使用

        二类是我们开发人员自己写的模块,称为文件模块

    CommonJS(Nodejs)中自定义模块的规定:

      1.我们可以把公共的功能抽离成为一个单独的 js 文件作为一个模块,默认情况下这个模块里面的方法或者属性,外面是没法访问的。

       如果要让外部可以访问模块里面的方法或者属性,就必须在模块里面通过 exports 或者 module.exports 暴露属性或者方法。

      2. 在需要使用这些模块的文件中,通过 require 的方式引入这个模块。这个时候就可以使用模块里面暴露的属性和方法。

    这是别个自定义模块的规定,所以你不能用import export 这个es6的语法

    这里来说一哈 这两种写法,

    通过exports和module.exports对外公开的方法都可以访问,但有区别

    module.exports才是真正的接口,exports只不过是它的一个辅助工具。 最终返回给调用的是module.exports而不是exports。
    所有的exports收集到的属性和方法,都赋值给了Module.exports。当然,这有个前提,就是module.exports本身不具备任何属性和方法。
    如果,module.exports已经具备一些属性和方法,那么exports收集来的信息将被忽略。

    参考地址:https://www.cnblogs.com/ooooevan/p/5897586.html  讲得很详细哟

    所以,要遵循这两点

    1.最好别分别定义module.exports和exports(说白了由他没我只能出现一个)

    2.NodeJs开发者建议导出对象用module.exports,导出多个方法和变量用exports

    exports仅仅是module.exports的一个地址引用。nodejs只会导出module.exports的指向,如果exports指向变了,那就仅仅是exports不在指向module.exports,于是不会再被导出

    可以这样理解啊exports相当于小弟

     

    dependencies 与 devDependencies 之间的区别

    使用 npm install node_module –save 自动更新 dependencies 字段值;
    使用 npm install node_module –save-dev 自动更新 devDependencies 字段值;
    dependencie 配置当前程序所依赖的其他包。
    devDependencie 配置当前程序所依赖的其他包,只会下载模块,而不下载这些模块的测试和文档框架

  • 相关阅读:
    惊!ThreadLocal你怎么动不动就内存泄漏?
    windows截屏.md
    小甲鱼.md
    sql手工注入.md
    2_ELF_header详解.md
    一句话下载器.md
    4.md
    通用寄存器.md
    2.md
    1_Segment_section.md
  • 原文地址:https://www.cnblogs.com/myfirstboke/p/10569995.html
Copyright © 2020-2023  润新知