我正在尝试在不使用 npm 的情况下将 JQuery 导入到我的 Vue JS 项目中。这是我正在尝试的:
***jquery-functions.js***
import '../../public/js/jquery.min.js'
export function bar(){ $(".foo"){...} }
/$ is not defined as function/
我正在尝试在不使用 npm 的情况下将 JQuery 导入到我的 Vue JS 项目中。这是我正在尝试的:
***jquery-functions.js***
import '../../public/js/jquery.min.js'
export function bar(){ $(".foo"){...} }
/$ is not defined as function/
var hello
在模块范围内进行评估,这可以防止变量泄漏到全局范围。
为了定义一个全局变量,它应该被显式赋值为:
window.hello = function (x){x+5};
至于 jQuery,它特定于模块的工作方式。它是 UMD 模块,当 jquery.min.js 作为模块导入时,它不会暴露为全局。
它应该被明确地分配为全局或者:
import jQuery from '../../public/js/jquery.min.js';
window.$ = window.jQuery = jQuery;
或者这可以通过 Vue CLI 内部使用的 Webpack 来完成,正如相关问题中的答案所暗示的那样。
我尝试了上面的所有方法,但不知何故我无法让它工作。要么eslint给出了函数未定义的错误,$()
要么 bootstrap 看不到包含的 jQuery。我不知道是否可以在全局范围内包含 jQuery,但我通过将 jQuery 包含到带有标签的index.html文件中找到了解决方案。<script>
然后在我的 jquery-functions.js 文件中,我禁用了 eslint,然后在运行时一切正常。
***jquery-functions.js***
/* eslint-disable */
export function bar(){ $(".foo"){...} }
我这样做是为了将 jQuery 方法与 Vue JS 方法分开。最好使用npm来避免全局包含 jQuery,这样您就可以只将它包含在您需要的组件中。对我来说,我担心我从 Internet 下载的模板中包含的所有其他(其中 6 个)jQuery 依赖库的兼容性。