在vue项目里怎么正确地引用 jquery 和 jquery-ui的插件?
程序员文章站
2023-11-15 12:53:46
使用vue-cli构建的vue项目,webpack的配置文件是分散在很多地方的,而我们需要修改的是build/webpack.base.conf.js,修改两处的代码
//...
使用vue-cli构建的vue项目,webpack的配置文件是分散在很多地方的,而我们需要修改的是build/webpack.base.conf.js,修改两处的代码
// 在开头引入webpack,后面的plugins那里需要 var webpack = require('webpack') // resolve module.exports = { // 其他代码... resolve: { extensions: ['', '.js', '.vue'], fallback: [path.join(__dirname, '../node_modules')], alias: { 'src': path.resolve(__dirname, '../src'), 'assets': path.resolve(__dirname, '../src/assets'), 'components': path.resolve(__dirname, '../src/components'), // webpack 使用 jquery,如果是自行下载的 // 'jquery': path.resolve(__dirname, '../src/assets/libs/jquery/jquery.min'), // 如果使用npm安装的jquery 'jquery': 'jquery' } }, // 增加一个plugins plugins: [ new webpack.provideplugin({ $: "jquery", jquery: "jquery" }) ], // 其他代码... }
这样就可以正确的使用jquery了,比如我要引入bootstrap,我们在vue的入口js文件src/main.js开头加入
// 使用bootstrap import './assets/libs/bootstrap/css/bootstrap.min.css' import './assets/libs/bootstrap/js/bootstrap.min'
这样bootstrap就正确的被引用并构建。
在比如使用toastr,只需要在需要的地方import进来,或者全局引入css在需要的地方引用js,然后直接使用
// 使用toastr import 'assets/libs/toastr/toastr.min.css' import toastr from 'assets/libs/toastr/toastr.min' toastr.success('hello')
参考:
managing jquery plugin dependency in webpack
如何在vue项目里正确地引用jquery和jquery-ui的插件
vue-cli webpack全局引入jquery
首先在package.json里加入,
dependencies:{ "jquery" : "^2.2.3" }
然后 nmp install
在webpack.base.conf.js里加入
varwebpack =require("webpack")
在module.exports的最后加入
plugins: [ new webpack.optimize.commonschunkplugin('common.js'), new webpack.provideplugin({ jquery: "jquery", $: "jquery" }) ]
然后一定要重新run dev
在main.js 引入就ok了
import$from'jquery'
参考:vue-cli怎么引入jquery
在.vue文件中引入第三方非npm模块
varshowbo =require("exportsshowbo!./path/to/showbo.js");
参考:exports-loader
vue-cli引入外部文件
在webpack.base.conf.js中添加externals
externals 中 swiper 是键,对应的值一定的是插件 swiper.js 所定义的变量 swiper :
之后再在根目录下的index.html文件里引入文件:<script src="static/lib/swiper.js"></script>
这样子就可以在需要用到swiper.js的文件里加入这行代码:import swiper from 'swiper',这样就能正常使用了。