[英]Why can I use import statements in libraries that only support CommonJS modules?
Ua-parser-js只支持CommonJS 模块。 并且在导出时, 找不到导出语句:
if (typeof(exports) !== UNDEF_TYPE) {
// nodejs env
if (typeof module !== UNDEF_TYPE && module.exports) {
exports = module.exports = UAParser;
}
exports.UAParser = UAParser;
} else {
// requirejs env (optional)
if (typeof(define) === FUNC_TYPE && define.amd) {
define(function () {
return UAParser;
});
} else if (typeof window !== UNDEF_TYPE) {
// browser env
window.UAParser = UAParser;
}
}
尽管如此,为什么我可以通过import { UAParser } from 'ua-parser-js'
来import { UAParser } from 'ua-parser-js'
? 此代码显示在以下 SO 答案和 GitHub 问题中。
这可能有两种工作方式:
import { UAParser } from 'ua-parser-js'
语句转换为遗留的const { UAParser } = require('ua-parser-js');
,然后由节点执行module.exports = UAParser;
将作为默认导入使用, exports.UAParser = UAParser;
您正在执行的命名导入将可用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.