Webpack不加载jQuery

时间:2018-04-12 19:24:20

标签: jquery webpack

我开始了解webpack,我正在尝试将其应用到我的ASP.Net项目中,覆盖默认的捆绑实用程序。

然而,即使我设置了webpack和co。根据网上的一些教程,我对如何正确地将jQuery放入我的包中感到很遗憾。

问题:' jQuery'尝试在chrome dev工具控制台中调用它时未定义。我检查了bundle.js,尽管它说的是关于jQuery的东西,但是它的源代码非常简短,绝不是完整的jQuery源代码。

这是我的webpack.config:

var path = require('path');
var webpack = require('webpack');

module.exports = {
    entry: {
        site: [
            './Scripts/index.ts'
        ]
    },
    output: {
        filename: 'bundle.js',
        path: path.resolve(__dirname, 'wwwroot/dist/')
    },
    module: {
        rules: [
            {
                test: /\.tsx?$/,
                loader: 'ts-loader',
                exclude: /node_modules/,
            }
        ]
    },
    resolve: {
        extensions: [".tsx", ".ts", ".js"],
    },
    plugins: [
        new webpack.ProvidePlugin({
            $: "jquery",
            jQuery: "jquery"
        })
    ]
};

index.ts尚未包含任何实际代码,但只包含一行,即:

import $ = require("jQuery");

据我所知,webpack应该告诉webpack将jQuery源放入bundle.js中,因为它是必需的。

谁能告诉我我做错了什么?

1 个答案:

答案 0 :(得分:0)

我遇到类似的问题,就像2天前解决了这个问题,

  1. 安装jquery(npm install jquery)
  2. 添加解决方案 webpack.config,文件夹位置webpack尝试搜索并解析所请求的模块(在本例中为jquery)
  3. E.g。

    resolve: {
            modules: [
                path.join(__dirname, "./app/custom-path"), //this is optional
                "node_modules"
            ]
        },
    

    还要使jquery变量可用于其中的其他模块(这样你就不必从'jquery'写入import $)

    plugins: [
            new webpack.ProvidePlugin({
                $: 'jquery',
                jQuery: 'jquery',
                'window.jQuery': 'jquery'
            })
        ],