Browserify

Browserify 可以让你使用类似于 node 的 require() 的方式来组织浏览器端的 Javascript 代码,通过 预编译 让前端 Javascript 可以直接使用 Node NPM 安装的一些库。 -- 来自百度百科
参考链接:https://baike.baidu.com/item/browserify/16823990?fr=aladdin
参考链接: http://browserify.org/ 官网

  1. 在桌面新建一个 browserifytest 文件夹,并在命令行中进入该目录
cd Desktop
mkdir browserifytest
cd browserifytest
  1. 项目初始化
npm init
  1. 我们的主要目的是本地的 js 文件可以引用 server 的 js 文件
  2. 安装包 uniq
cnpm install uniq --save
  1. 在项目中新建文件 index.js test.js index.html
  2. 编辑文件
    index.js
var unique = require('uniq');
var test = require('./test.js');
test(unique);

test.js

module.exports = function(cheerio) {
    console.log('我是服务端的人', cheerio);
};

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script type="text/javascript" src="./bundle.js
    "></script>
</head>
<body>
    
</body>
</html>
  1. 在全局安装 Browserify 这个库
npm install -g browserify
  1. 把 index.js 文件编译成一个 bundle.js 文件
browserify index.js -o bundle.js

编译成功之后 项目中会多一个 bundle.js 文件
bundle.js

(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
var unique = require('uniq');
var test = require('./test.js');
test(unique);
},{"./test.js":3,"uniq":2}],2:[function(require,module,exports){
"use strict"

function unique_pred(list, compare) {
  var ptr = 1
    , len = list.length
    , a=list[0], b=list[0]
  for(var i=1; i<len; ++i) {
    b = a
    a = list[i]
    if(compare(a, b)) {
      if(i === ptr) {
        ptr++
        continue
      }
      list[ptr++] = a
    }
  }
  list.length = ptr
  return list
}

function unique_eq(list) {
  var ptr = 1
    , len = list.length
    , a=list[0], b = list[0]
  for(var i=1; i<len; ++i, b=a) {
    b = a
    a = list[i]
    if(a !== b) {
      if(i === ptr) {
        ptr++
        continue
      }
      list[ptr++] = a
    }
  }
  list.length = ptr
  return list
}

function unique(list, compare, sorted) {
  if(list.length === 0) {
    return list
  }
  if(compare) {
    if(!sorted) {
      list.sort(compare)
    }
    return unique_pred(list, compare)
  }
  if(!sorted) {
    list.sort()
  }
  return unique_eq(list)
}

module.exports = unique

},{}],3:[function(require,module,exports){
module.exports = function(cheerio) {
    console.log('我是服务端的人', cheerio);
};
},{}]},{},[1]);

  1. 然后再把 index.html 文件在浏览器中打开,查看控制台输出如下,便证明引用成功了
360截图20171127004306699.jpg

总结:

  1. webpack 包管理器 核心基于 loader ,编译 Node 会多出很多无用的代码
  2. gulp / grunt 基于文件流,更快,可以用它去编译 Node / 基于文件 I/O
  3. yo 发布一些自己的模块
    4 . bower 安装依赖
  4. browserify 能够让本地的 js 应用服务端的 js,让 js 直接就具有 require 的能力
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容