我正在用node.js、express.js和Jade组合编写一个应用程序。
我有文件client.js
,它加载在客户端上。在该文件中,我有调用其他JavaScript文件中的函数的代码。我想用
var m = require('./messages');
以便加载messages.js
的内容(就像我在服务器端所做的那样),并随后从该文件调用函数。但是,require
未在客户端定义,它会抛出一个格式为uncatted referenceError:require is not defineded
的错误。
这些其他JavaScript文件也是在运行时加载到客户端的,因为我将链接放置在网页的头部。因此客户端知道从这些其他文件导出的所有函数。
如何从打开服务器套接字的主client.js
文件中的其他JavaScript文件(如messages.js
)调用这些函数?
这是因为require()
在浏览器/客户端JavaScript中不存在。
现在,您必须对客户端JavaScript脚本管理做出一些选择。
您有三种选择:
标记。CommonJS客户端实现包括(大多数需要在部署之前执行构建步骤):
您可以阅读关于Browserify与(已弃用)组件比较的更多信息。
AMD的实现包括:
注意,在你选择哪一个去的搜索中,你会读到鲍尔。Bower仅用于包依赖项,并且不依赖于像CommonJS和AMD这样的模块定义。