为什么我必须在我的Nuxt.js插件中显式调用jquery和bootstrap,当它在供应商中全局加载时?

为什么我必须在我的Nuxt.js插件中显式调用jquery和bootstrap,当它在供应商中全局加载时?,nuxt.js,Nuxt.js,正如问题中所描述的,我面临着一个奇怪的问题 当我这样做的时候: plugins: [ '~plugins/posh.js' ], vendor: ['jquery', 'bootstrap', 'popper.js'], plugins: [ // set shortcuts as global for bootstrap new webpack.ProvidePlugin({ $: 'jquery', jQuery:

正如问题中所描述的,我面临着一个奇怪的问题

当我这样做的时候:

plugins: [
    '~plugins/posh.js'
  ],
vendor: ['jquery', 'bootstrap', 'popper.js'],
    plugins: [
      // set shortcuts as global for bootstrap
      new webpack.ProvidePlugin({
        $: 'jquery',
        jQuery: 'jquery',
        'window.jQuery': 'jquery'
      })
它似乎没有全局加载jquery或引导

我必须像这样在我的插件(posh.js)中手动加载它

if (process.client) {
require('bootstrap')
const $ = require('jquery')
..some jquery and bootstrap code specific to a theme.
}

这没有道理。为什么需要这样做。

无需添加到供应商中,只需将jquery文件放入文件夹,并使您的nuxt.config.js如下所示

head: {
    script: [{
      src: '/global/resources/jquery-3.3.1.min.js'
    }, {
      src: '/global/resources/jquery-ui.min.js'
    }, {
      src: '/global/resources/bootstrap.min.js'
    }]
  }

所以一切都会很好,不需要添加到供应商,也不需要在webpack插件中提及,因为您想使用jquery,所以任何页面和任何可以使用的地方都可以使用jquery,这样jquery文件总是添加到您的每个页面上,享受吧

这不会执行串联