在生产模式下运行 vite 时出现“jQuery 不是函数”

Ala*_*ene 6 jquery rollupjs vite laravel-9

我正在尝试将 jQuery 与 laravel 9 + vite 一起使用。它在开发中工作正常,但在构建时,我发现 jQuery 不是一个函数

库.ts

import * as jQuery from 'jquery';
declare global {
    interface Window {
        jQuery: typeof jQuery;
        $: typeof jQuery;
    }
}

window.$ = window.jQuery = jQuery;
Run Code Online (Sandbox Code Playgroud)

主要.ts

jQuery(function(){
     console.log(jQuery(".datepicker"));
});
Run Code Online (Sandbox Code Playgroud)

vite.config.ts

jQuery(function(){
     console.log(jQuery(".datepicker"));
});
Run Code Online (Sandbox Code Playgroud)

npm run dev 的输出

npm run dev 的输出

npm run build 的输出

npm run build 的输出

小智 5

使用@rollup/plugin-inject注入 jQuery :

vite.config.ts

import { defineConfig } from 'vite';
import inject from '@rollup/plugin-inject';

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    inject({
        //Remember to add `"jquery": "^3.6.1"` in `dependencies` for `package.json`
        jQuery: "jquery",
        "window.jQuery": "jquery",
        $: "jquery"
    })
  ]
})
Run Code Online (Sandbox Code Playgroud)