這比我預料的更令人沮喪。導入jQuery插件。 Angular 2&Webpack
我已經想出瞭如何在我的Webpack構建過程中包含諸如jQuery和bootstrap之類的東西。但我添加的第三方角度指令之一需要一個特定的jQuery插件在全局$範圍內可用...對於我的生活,我找不到一個簡單明瞭的例子來說明如何做到這一點。
這是錯誤的代碼,我不斷收到:
Error: Error in ./SomeComponent class SomeComponent - inline template:5:32 caused by: $(...).selectize is not a function
我已經看到了使用腳本加載程序的例子,暴露裝載機,採用決心用別名集,我已經試過所有......但是我並不是很幸運,因爲我是Webpack的新手,在過去的兩天裏我可能已經把自己弄得比什麼都重要。我想我正在混合不同的解決方案,這可能會加劇混亂。
我已經讀了幾遍這個post,它只解釋瞭如何加載,jQuery本身...但不是一個jQuery插件。
(一些代碼排除爲簡潔起見)
webpack.config.js
module.exports = {
module: {
loaders: [
{
test: /bootstrap-sass[\/\\]assets[\/\\]javascripts[\/\\]/,
use: 'imports-loader?jQuery=jquery'
},
{
test: require.resolve('selectize'),
use: 'expose-loader?$!expose?selectize'
}
]
},
plugins: [
new webpack.ProvidePlugin({
$: "jquery",
jquery: "jquery",
"window.jQuery": "jquery",
jQuery:"jquery"
}),
resolve: {
alias: {
'selectize': path.resolve(
__dirname,
'../selectize/dist/js/selectize.min.js'
)
},
extensions: [
'.webpack.js',
'.web.js',
'.js',
'.ts'
]
},
entry: {
vendor: [
..
],
main: `./${conf.path.src('index')}`
}
};
app.ts
import 'script-loader!selectize';
因此我的問題:
如何在使用Webpack 2模塊加載/構建過程的Angular 2應用程序中加載第三方jQuery插件。
是不是這種情況下,你可能想尋找一個非jQuery,angular2特定的庫,解決同樣的問題? – jellymann
@jellymann。是和不是......這個問題涉及到導入第三方庫和它們的依賴關係。即使我能夠通過「只有角度」才能超越這一點。我仍然需要在某個階段弄清楚如何提供/捆綁/提供第三方依賴關係。 –