zoukankan      html  css  js  c++  java
  • nodejs深入浅出读书笔记(二)

    nodejs的模块化

    1.CommonJS 规范
    -- CommonJS为JavaScrip定了一个美好的愿景,就是希望它可以在任何地方使用
    a.没有模块系统
    b.标准库较少。
    c.没有标准接口
    d.缺乏包管理器

    2.CommonJS模块规范
    a.模块的引用
    var math = require('math') console.log(math.xxxx)
    b.模块定义
    export.add = function(){
    ...
    }

    3.nodeJs模块规范
    a.Node依次查找.js、.json、.node的文件
    b.本地安装包的方式只需为npm指明package.json文件所在的位置
    4.npm钩子
    package.json中的scripts命令就是让包在安装或者卸载过程中提供钩子机制
    5.npm包的发布
    1.npm login || npm adduser 然后按提示操作
    2.进入到要上传的文件夹,在package同级目录下面执行npm publish .
    注意:npm发的邮件有可能被qq邮箱视为垃圾邮件
    6. npm包的安装
    npm install xxxx
    7. 多人发布包,增加,删除,列出
    npm owner ls
    npm owner add
    npm owner rm
    8.分析包
    npm list
    9.npm包平台的问题
    a.上传者的水平不一,所以质量性能方面有待验证
    b.包能在服务器端运行,需要考虑安全问题
    10.鉴于网络的原因,commonjs为服务器端js指定的规范并不适用于前端
    这样就产生了AMD规范,Asynchronous Module Definition 即
    异步定义模块,是commondjs的一个延伸
    amd规范定义模块的方式
    define(function() { var exports = {}; exports.sayHello = function() { alert('Hello from module: ' + module.id); }; return exports; });
    11.cmd规范主要由国内的玉伯提出,与amd规范的区别主要在于定义模块和引入依赖的部分。
    amd需要在声明时候指定所有的依赖,通过形参传入依赖到模块内容中
    define(['dep1', 'dep2'], function (dep1, dep2) { return function () {}; });
    cmd 规范更接近commonjs规范的定义,cmd支持动态引入依赖
    define(factory); define(function(require, exports, module) { // The module code goes here });
    12.兼容多种模块规范
    ;(function (name, definition) { // 检测下文环境是否为AMD或CMD var hasDefine = typeof define === 'function', // 检查下文环境是否为Node hasExports = typeof module !== 'undefined' && module.exports; if (hasDefine) { // AMD环境或CMD环境 define(definition); } else if (hasExports) { // 定义为೵通Node模块 module.exports = definition(); } else { // 将模块的执行结果挂在window变量中,在浏览器中this指向window this[name] = definition(); } })('hello', function () { var hello = function () {}; return hello; });

  • 相关阅读:
    【转】CUDA5/CentOS6.4
    【转】centos 6.4 samba 安装配置
    【转】Install MATLAB 2013a on CentOS 6.4 x64 with mode silent
    【转】Getting xrdp to work on CentOS 6.4
    【VLFeat】使用matlab版本计算HOG
    Unofficial Windows Binaries for Python Extension Packages
    March 06th, 2018 Week 10th Tuesday
    March 05th, 2018 Week 10th Monday
    March 04th, 2018 Week 10th Sunday
    March 03rd, 2018 Week 9th Saturday
  • 原文地址:https://www.cnblogs.com/Nelsen8/p/12751283.html
Copyright © 2011-2022 走看看