编辑:使用webpack解决问题
出于API的需要,我需要导入MD5
和moment
。我使用基本的npm install
下载了软件包,但是当我尝试使用以下代码将其导入app.js
时:
const md5 = require ('./node_modules/md5/md5.js');
const moment = require ('./node_modules/moment/moment.js');
function getTimeStamp () {
return moment.utc ().format ('YYYYMMDDHHmmss');
}
let timestamp = getTimeStamp ();
function generateSignature (devId, method, authKey, timestamp) {
return md5 (`${devId}${method}${apiKey}${timestamp}`);
}
let signature = generateSignature (XXXX, "createsession", "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", getTimeStamp ());
我在控制台中收到此消息:
Uncaught ReferenceError: require is not defined
我不知道我在做什么错,因为我对另一个程序使用了相同的方法,并且效果很好...
预先感谢
答案 0 :(得分:3)
您可能会看到此错误,因为在浏览器/客户端JavaScript中不不存在require()。 如果要在浏览器中使用require(),则需要使用类似require.js
RequireJS是一个JavaScript文件和模块加载器。已针对 浏览器内部使用,但可以在其他JavaScript环境中使用, 像Rhino和Node。
PS:我同意cptwonton。请参阅上述文章,以获取具有各种可用选项的深入解决方案。
答案 1 :(得分:0)
尝试一下:
const md5 = require ("md5");
const moment = require ("moment");
答案 2 :(得分:0)
require
,因为Node和ES6具有不同的模块系统。您是否要在浏览器中致电require
?在这种情况下,我建议您设置Babel。但是,如果您使用node,请尝试重新启用nodejs。