我正在用Node.js, Express.js和Jade组合写一个应用程序。
我有client.js文件,它被加载在客户端上。在这个文件中,我有调用其他JavaScript文件的函数的代码。我的尝试是利用
var m = require('./messages');
以便加载messages.js的内容(就像我在服务器端所做的那样),然后从该文件中调用函数。但是,require没有在客户端定义,并且它抛出一个Uncaught ReferenceError形式的错误:require没有定义。
这些其他JavaScript文件也在运行时在客户机上加载,因为我将链接放在网页的头部。客户端知道从其他文件导出的所有函数。
如何从打开到服务器的套接字的主客户端.js文件中的这些其他JavaScript文件(如messages.js)调用这些函数?
在我的例子中,我使用了另一种解决方案。
由于项目不需要CommonJS,它必须具有ES3兼容性(模块不支持),你所需要的只是从你的代码中删除所有的导出和导入语句,因为你的tsconfig不包含
"module": "commonjs"
但是在引用的文件中使用import和export语句
import { Utils } from "./utils"
export interface Actions {}
最终生成的代码总是有这样的行(至少对于TypeScript 3.0是这样)
"use strict";
exports.__esModule = true;
var utils_1 = require("./utils");
....
utils_1.Utils.doSomething();
在我的例子中,我使用了另一种解决方案。
由于项目不需要CommonJS,它必须具有ES3兼容性(模块不支持),你所需要的只是从你的代码中删除所有的导出和导入语句,因为你的tsconfig不包含
"module": "commonjs"
但是在引用的文件中使用import和export语句
import { Utils } from "./utils"
export interface Actions {}
最终生成的代码总是有这样的行(至少对于TypeScript 3.0是这样)
"use strict";
exports.__esModule = true;
var utils_1 = require("./utils");
....
utils_1.Utils.doSomething();