如何在客户端代码中使用节点模块?

时间:2015-03-02 05:08:37

标签: node.js

我在我的nodejs应用程序中安装了ReactJs模块,因此React出现在node_modules目录中。但是我无法在客户端javascript中使用它,因为没有引用。

那么添加这样一个引用的最佳方法是什么? (当然我可以手动将react.js脚本复制到脚本文件夹并手动添加引用,但这会导致代码重复并且看起来很难看)

1 个答案:

答案 0 :(得分:2)

Browserify是您正在寻找的工具。它需要Node模块并将它们包装起来,以便您可以在客户端JavaScript代码中require()

来自Browserify's readme

的示例
  

制作一个文件main.js,其中包含require()'./foo.js'个文件。您可以使用   相对路径,如'../lib/bar.js''gamma'或模块路径   与使用node's module lookup algorithm搜索node_modules/的{​​{1}}类似。

var foo = require('./foo.js');
var bar = require('../lib/bar.js');
var gamma = require('gamma');

var elem = document.getElementById('result');
var x = foo(100) + bar('baz');
elem.textContent = gamma(x);
     

通过分配到module.exportsexports

来导出功能
module.exports = function (n) { return n * 111 }
     

现在只需使用browserify命令构建一个从中开始的包   main.js

$ browserify main.js > bundle.js
     

main.js所需的所有模块都包含在。{   使用bundle.js图表的递归遍历require()   required

     

要使用此捆绑包,只需抛出<script src="bundle.js"></script>   进入你的HTML!