zoukankan      html  css  js  c++  java
  • 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 配置当前程序所依赖的其他包,只会下载模块,而不下载这些模块的测试和文档框架

  • 相关阅读:
    第30周日
    第30周六
    第30周五
    第30周四
    第30周三
    第30周二
    第30周一
    第29周日
    软件架构学习小结
    数据挖掘十大经典算法
  • 原文地址:https://www.cnblogs.com/myfirstboke/p/10569995.html
Copyright © 2011-2022 走看看