vue+webpack使用ProvidePlugin插件引入jquery先看一個實例,webpack+vue引入jquery并全局使用,這兒指通過配置,不是在靜態(tài)頁面使用script標(biāo)簽直接引入jquery。 在webpack配置中跟module同級中添加plugins,代碼如下: const webpack = require('webpack')
module.exports = {
context: path.resolve(__dirname, '../'),
// ...其他代碼省略
plugins: [
new webpack.ProvidePlugin({
$: 'jquery',
jQuery: 'jquery',
'window.jQuery': 'jquery'
})
],
// ... 其他代碼省略
}
當(dāng)然要使用jquery,需要npm安裝下,即npm i jquery -S 現(xiàn)在你就可以在任意vue頁面中不需要import導(dǎo)入jquery就能使用了。 mounted() { $('#btn').on('click',function(){ console.log('我調(diào)用jquery了') }) } 可以查看下segmentfault上的一個問題:《vue.js+webpack 中怎么引用并全局使用jquery》,但是回答中是有錯誤的,不需要在main.js在import導(dǎo)入jquery。 ProvidePlugin配置解析路徑默認情況下,模塊解析路徑為當(dāng)前文件夾( 上面的這種配置就是去node_modules下面找jquery的模塊全局引入。 當(dāng)然還可以配置工程中的路徑,也可以指定完整路徑: plugins: [ new webpack.ProvidePlugin({ 'utils': path.resolve(path.join(__dirname, '..','src/utils/index.js')) }) ] 我在src/utils/index.js代碼中寫如下一個方法: export function sum(a,b) { return a + b } 現(xiàn)在我可以在任意實例頁面中調(diào)用,如下代碼: mounted() { var result = utils.sum(1,2); console.log(result) // 3 } 當(dāng)然我們也可以通過alias屬性配置快捷方式,如下代碼: alias: { 'vue$': 'vue/dist/vue.esm.js', '@': resolve('src'), 'utils': resolve('src/utils/index.js') // 新增的 } 我們再修改下ProvidePlugin的配置,如下代碼: plugins: [ new webpack.ProvidePlugin({ 'utils': 'utils' }) ] 這樣也是可以的,然后我們在任意實例頁面中調(diào)用: mounted() { var result = utils.sum(1,2); console.log(result) // 3 } 參考 |
|
|