Nodejs:让 Node 模块跑在浏览器里, Browserify

Nodejs:让 Node 模块跑在浏览器里, Browserify

很久一段时间了我一直在找浏览器段使用 Node 语法组织模块的方案 因为 SourceMap 技术渐渐成熟, 终于, 现在的工具已经可以用了 突然发现 Browserify 已经支持 JS 的 SourceMap, 甚至 CoffeeScript 直接写 模块的介绍可以看 Github 主页: https://github.com/substack/node-browserify?ref=commandbarr 还有 substack 自己的介绍, 不过我从 Vimeo 转的清晰度比较低: http://www.tudou.com/programs/view/pFEUq8F-970/ 我写了一篇比较索引了一下相关的资源: https://github.com/coffee-js/languages/issues/55

大概的用法是这样的, 首先安装 browserify 这个命令… 然后比如, 写一个 main.js 引用了 lib.js, 再引用了 lib-2.js 这样的文件 然后用 browserify -d main.js -o build.js 完成编译, -d 是用来产生 SourceMap 的 build.js 里大概实现了一遍模块加载器的功能, 所有代码都写到里边了的 SourceMap 在这里是用 DataURL 写在 JS 文件里的, 不用单独一个文件 命令里只要引用主入口就可以了, 命令会自动引入其他模块的 然后 Chrome 调试工具里打开 SourceMap 选项就可以用了

CoffeeScript 的用法, 要在本地 npm 安装 coffeeify 模块. 命令用 browserify -dt coffeeify main.coffee -o build.js 来完成编译 目前的版本行号还有些 Bug, 等待后续的更新来改正 另外 .coffee 里的 require("./lib.coffee") 是必须写后缀, Issue 里有人抱怨了

前端调试, 就应该跟 node-dev 一样, 一边 save 一边运行代码, 自动刷新网页 现在前端工具链因为 Node 逐渐开始完善了, 好现象, 希望再快一些 现在 Browserify 听说能直接引用 Component 项目的模块, 这不错 还有 Browserify 为一些 Node 官方模块改了一些浏览器版本, 这也挺有用 希望越来越好


5 回复

Nodejs:让 Node 模块跑在浏览器里, Browserify

介绍

Browserify 是一个强大的工具,它允许你在浏览器中使用 Node.js 模块系统。这意味着你可以使用 requiremodule.exports 来组织你的前端代码,就像在 Node.js 中一样。这不仅提高了代码的可维护性,还简化了模块管理。

安装与基本使用

首先,你需要安装 Browserify。你可以通过 npm 来安装它:

npm install -g browserify

接下来,假设你有一个简单的项目结构:

project/
├── main.js
├── lib.js
└── lib-2.js

main.js 可以这样编写:

// main.js
const lib = require('./lib');
const lib2 = require('./lib-2');

console.log(lib());
console.log(lib2());

lib.jslib-2.js 可以是这样的:

// lib.js
module.exports = function() {
    return 'Hello from lib.js';
};
// lib-2.js
module.exports = function() {
    return 'Hello from lib-2.js';
};

使用 Browserify 编译这些文件:

browserify -d main.js -o build.js

这里 -d 参数用于生成 SourceMap,方便调试。

使用 CoffeeScript

如果你喜欢使用 CoffeeScript,你可以通过安装 coffeeify 来处理 .coffee 文件:

npm install -g coffeeify

然后你可以这样编译:

browserify -dt coffeeify main.coffee -o build.js

注意,CoffeeScript 的 require 需要指定文件扩展名:

# main.coffee
lib = require('./lib.coffee')
lib2 = require('./lib-2.coffee')

console.log lib()
console.log lib2()

调试

在 Chrome 开发者工具中启用 SourceMap 功能,可以让你轻松地调试源码。只需在 Sources 面板中打开你的源码文件即可。

前端调试体验

前端开发也应该像 node-dev 一样,能够实时保存并重新加载代码。随着 Node.js 在前端工具链中的应用越来越广泛,这种实时开发体验变得越来越重要。

总结

Browserify 让你在浏览器中使用 Node.js 模块系统变得更加简单。通过它可以轻松地将 Node.js 代码转换为可以在浏览器中运行的代码,并且提供了 SourceMap 支持,使得调试更加方便。希望未来 Browserify 能够支持更多的功能,如更好的 CoffeeScript 支持和更好的前端开发体验。


有个node-webkit工具可以让node在webket浏览器上跑以及调试,那个调试也不错

感觉也是, 不过为了代码在随便一台电脑上都能跑, 只能忍了

Node.js: 让 Node 模块跑在浏览器里, Browserify

Browserify 是一个强大的工具,它允许你在浏览器中使用 Node.js 模块。这意味着你可以像在 Node.js 中一样编写模块化的 JavaScript 代码,并通过 Browserify 将其转换为可以在浏览器中运行的格式。

安装 Browserify

首先,你需要全局安装 browserify

npm install -g browserify

示例代码

假设我们有一个简单的项目结构:

project/
├── lib.js
└── main.js

lib.js

// lib.js
module.exports = function() {
    return 'Hello from lib.js';
};

main.js

// main.js
var lib = require('./lib.js');

console.log(lib());

编译

使用 browserify 命令将这些模块打包成一个可以在浏览器中使用的文件:

browserify -d main.js -o build.js

这里 -d 参数用于生成 Source Map 文件,以便在浏览器中进行源码调试。

HTML 文件

接下来,创建一个简单的 HTML 文件来引用 build.js

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Browserify Example</title>
</head>
<body>
    <script src="build.js"></script>
</body>
</html>

调试

在 Chrome 浏览器中打开开发者工具(F12 或右键选择 “检查”),然后启用 Source Map 功能。当你在 main.jslib.js 中设置断点时,浏览器会跳转到正确的源文件位置,而不是合并后的 build.js

CoffeeScript 支持

如果你更喜欢使用 CoffeeScript,可以使用 coffeeify 插件。首先,安装 coffeeify

npm install coffeeify

然后使用以下命令编译 CoffeeScript 文件:

browserify -dt coffeeify main.coffee -o build.js

这将把 CoffeeScript 文件转换为 JavaScript 并进行打包。

总结

Browserify 是一个非常方便的工具,可以帮助你在浏览器中使用 Node.js 模块系统。通过简单的命令行操作,你就可以将复杂的模块化代码转换为可以在现代浏览器中运行的格式。同时,Browserify 支持 Source Map,使得调试更加容易。

回到顶部