Javascript 获取jQuery插件以;见;TypeScript中的jQuery
在我的Javascript 获取jQuery插件以;见;TypeScript中的jQuery,javascript,jquery,typescript,Javascript,Jquery,Typescript,在我的main.ts文件中,我导入了jQuery,并且需要这样的插件: /// <reference path="../../../typings/tsd.d.ts" /> import * as $ from 'jquery'; require('./vendors/tablesaw'); // 从“jquery”导入*为$; 要求(“/供应商/表锯”); 这与预期的一样,所有东西都正确绑定(使用webpack),但是插件抛出了一个$is not defined错误,所以问题
main.ts
文件中,我导入了jQuery,并且需要这样的插件:
/// <reference path="../../../typings/tsd.d.ts" />
import * as $ from 'jquery';
require('./vendors/tablesaw');
//
从“jquery”导入*为$;
要求(“/供应商/表锯”);
这与预期的一样,所有东西都正确绑定(使用webpack),但是插件抛出了一个
$is not defined
错误,所以问题是如何让它在导入jQuery时“看到”jQuery 好吧,我找到了一个解决办法。您可以在webpack项目中全局公开jQuery,因此将以下内容放入webpackconfig
对象中:
resolve: {
alias: {
jquery: path.resolve(__dirname, 'jquery.min.js')
}
}
并将其放入您的网页输入文件:
require('expose?$!expose?jQuery!jquery');
最后安装expose loader:
npm install expose-loader --save
将实现这一技巧,使jQuery对所有插件等可见。您可以jQuery到窗口
对象,使其全局可用,类似于它自己加载的方式:
import * as $ from "jquery";
Object.assign(window, { $ });
当我试图将jQuery从我的TypeScript条目文件公开到全局范围时,如下所示:
import * as $ from "jquery";
window.$ = $;
我得到的错误是,类型“Window”上不存在属性“$”,但上面的方法似乎可以编译并正常工作