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

我在我的nodejs应用程序中安装了ReactJs模块,所以React出现在node_modules目录中。 但是我不能在客户端javascript中使用它,因为没有参考。

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

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

来自Browserify的自述文件的示例

鞭打一个文件, main.js与一些require() s在里面。 您可以使用像'./foo.js''../lib/bar.js'这样'./foo.js'相对path或像'gamma'这样'gamma'模块path来searchnode_modules/使用节点的模块查找algorithm 。

 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导出function:

 module.exports = function (n) { return n * 111 } 

现在只需使用main.js命令从main.js开始创build一个包:

 $ browserify main.js > bundle.js 

main.js所需的所有模块都包含在bundle.js ,使用require()图recursion遍历。

要使用这个包,只需将<script src="bundle.js"></script>拖入你的html!