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

  • 相关阅读:
    bzoj1015星球大战(并查集+离线)
    bzoj1085骑士精神(搜索)
    bzoj1051受欢迎的牛(Tarjan)
    左偏树学习
    hdu1512 Monkey King(并查集,左偏堆)
    左偏树(模板)
    PAT (Basic Level) Practice (中文) 1079 延迟的回文数 (20分) (大数加法)
    PAT (Basic Level) Practice (中文) 1078 字符串压缩与解压 (20分) (字符转数字——栈存放)
    PAT (Basic Level) Practice (中文) 1077 互评成绩计算 (20分) (四舍五入保留整数)
    PAT (Basic Level) Practice (中文) 1076 Wifi密码 (15分)
  • 原文地址:https://www.cnblogs.com/myfirstboke/p/10569995.html
Copyright © 2011-2022 走看看