1. 程式人生 > >如何在 vue 專案里正確地引用 jquery 和 jquery-ui的外掛

如何在 vue 專案里正確地引用 jquery 和 jquery-ui的外掛

使用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')

參考:

vue-cli webpack全域性引入jquery

  1. 首先在package.json里加入,

    dependencies:{
     "jquery" : "^2.2.3"
    }

    然後 nmp install

  2. webpack.base.conf.js里加入

    var webpack = require("webpack")
  3. 在module.exports的最後加入

    plugins: [
     new webpack.optimize.CommonsChunkPlugin('common.js'),
     new webpack.ProvidePlugin({
         jQuery: "jquery",
         $: "jquery"
     })
    ]
  4. 然後一定要重新 run dev

  5. 在main.js 引入就ok了

    import $ from 'jquery'

在.vue檔案中引入第三方非NPM模組

var Showbo = require("exports?Showbo!./path/to/showbo.js");

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',這樣就能正常使用了。
參考: https://segmentfault.com/q/1010000005169531?_ea=806312