我没有处理何时使用require(‘jslib’)与< script src =“”>< / script>在电子内容页面(例如index.html)中.使用jQuery,我发现它需要按如下方式加载:
<script>window.$= window.jQuery = require('./js/jquery-2.2.4.min.js');</script>
我需要开始使用其他一些库(例如Handlebars,ds3.js,Bootstrap等),我不确定是否应该使用< script>加载它们.标签或我是否应该要求它们.
解决方法:
有些库只通过CommonJS接口公开它们的变量.其他人,比如jQuery,也将它们作为全局变量公开.
你不能做的原因< script src =“...”>< / script>对于仅通过CommonJS公开的库,它不会绑定到全局空间.
与CommonJS绑定
module.exports = myLibrary;
绑定到全局范围
window.myLibrary = myLibrary;
如果库只执行前者,那么您将无法在不使用require的情况下访问该值.如果一个库只执行后者,那么你将无法使用const myLibrary = require(‘my-library’)意义上的require访问它
通常,在全局变量上使用CommonJS是一个更好的主意.将变量添加到全局范围可能会导致名称冲突并直接加载到依赖项中,这使下一个人更容易分辨出依赖项的来源.更不用说,CommonJS允许静态分析工具更好地工作,因此您更有可能获得相关的代码完成和类型定义.
使用jQuery的例子,最好像这样使用它.
// main.js
const $= require('./js/jquery-2.2.4.min.js');
// could also be done like this if you install it as a Node dependency
// const $= require('jquery');
$(document).ready(...);
<!-- index.html -->
...
<script src="main.js"></script>
TL; DR
尽可能使用require(‘my-library’),当它不是时,将它们加载为全局变量.
原文地址:https://codeday.me/bug/20191002/1845155.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。