【发布时间】:2016-11-27 12:43:19
【问题描述】:
我正在研究 Angular 2,我想在其中需要来自 Jquery ui 的 jQuery。每个模块通过访问全局变量将自己添加到 jQuery。我花了几个小时搜索 Github 和 Stackoverflow(以及其他随机网站)的几乎每个角落,寻找解决方案,但到目前为止,还没有一个有效。
我尝试过的方法:
为 $、jQuery 和 window.jQuery 提供插件, 暴露装载机 进口装载机 在我的堆栈中的不同位置需要 jQuery 的各种其他组合 我显然在这里遗漏了一些东西。每次我写 import "jquery-ui" 时,我都会得到 "jQuery is not defined
谢谢。
我的 webpack.config.js(用于开发)
var path = require('path');
var autoprefixer = require('autoprefixer');
var webpack = require('webpack');
const DedupePlugin = require('webpack/lib/optimize/DedupePlugin');
const UglifyJsPlugin = require('webpack/lib/optimize/UglifyJsPlugin');
var commonConfig = {
resolve: {
extensions: ['', '.ts', '.js'],
alias: {
'jquery': path.join(__dirname, 'node_modules/jquery/dist/jquery'),
}
},
module: {
loaders: [
// TypeScript
{ test: /\.ts$/, loaders: ['ts-loader'] },
{ test: /\.css$/, loaders: ['style','css'] },
{
test: /\.html/,
loader: 'html',
query: {
minimize: true,
removeAttributeQuotes: false,
caseSensitive: true,
// Teach html-minifier about Angular 2 syntax
customAttrSurround: [
[/#/, /(?:)/],
[/\*/, /(?:)/],
[/\[?\(?/, /(?:)/]
],
customAttrAssign: [/\)?\]?=/]
}
},
{ test: /\.scss$/, loaders: ['to-string', 'css', 'postcss', 'resolve-url', 'sass?sourceMap'] },
{ test: require.resolve('jquery'), loader: 'expose?jQuery!expose?$' }
]
},
'uglify-loader': {
mangle: false
},
postcss: function () {
return [autoprefixer];
},
plugins: [
new webpack.optimize.OccurenceOrderPlugin(true),
new webpack.DefinePlugin({
ENV: JSON.stringify(process.env.ENV)
})
],
devtool: process.env.ENV == 'dev'? 'source-map' : null
};
module.exports=commonConfig;
【问题讨论】:
-
Kritika,没有参考 Jquery-UI .....页面的 jquery 部分是否正常工作?
-
Kritika 我的意思是,您在该页面中使用的不是 Jquery UI 吗??
-
从 '@angular/core' 导入 {Component,OnInit,ElementRef};从'jquery'导入*作为$;导入“jquery-ui”;是的,我先导入 jquery,然后再导入 jquery-ui
-
是的 jquery 部分工作正常。
标签: jquery jquery-ui typescript angular webpack