当前位置: 首页 > 知识库问答 >
问题:

使用webpack加载引导时未定义“jquery”

宰父保臣
2023-03-14

我刚刚开始学习使用Webpack(以前我只是使用手动方式单独包含单个脚本)。我使用引导加载程序加载引导。这是我的webpack.config.js

var path = require("path")
var webpack = require('webpack')
var BundleTracker = require('webpack-bundle-tracker')

module.exports = {
    context: __dirname,

    entry: './assets/js/index', // entry point of our app. assets/js/index.js should require other js modules and dependencies it needs

    output: {
        path: path.resolve('./assets/bundles/'),
        filename: "[name]-[hash].js",
    },

    plugins: [
        new BundleTracker({filename: './webpack-stats.json'})
    ],

    module: {
        loaders: [
            { test: /\.jsx?$/, exclude: /node_modules/, loader: 'babel-loader'}, // to transform JSX into JS
            { test: /\.css$/, loader: 'style-loader!css-loader'}, // to transform css
            // images
            { test: /\.png$/, loader: 'url-loader?limit=100000'},
            { test: /\.jpg$/, loader: 'file-loader'},
            // bootstrap image files
            { test: /\.(woff|woff2)(\?v=\d+\.\d+\.\d+)?$/, loader: 'url?limit=10000&mimetype=application/font-woff'},
            { test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/, loader: 'url?limit=10000&mimetype=application/octet-stream'},
            { test: /\.eot(\?v=\d+\.\d+\.\d+)?$/, loader: 'file'},
            { test: /\.svg(\?v=\d+\.\d+\.\d+)?$/, loader: 'url?limit=10000&mimetype=image/svg+xml'}
        ],
    },

    resolve: {
        modulesDirectories: ['node_modules', 'bower_components'],
        extensions: ['', '.js', '.jsx'],
        jquery: './vendor/jquery/jquery.js',
    },
}

这是我的entry.js

global.jQuery = global.$ = require('jquery');
require('bootstrap-loader');

这似乎行得通。然而,我以前用过这个,它不起作用:

window.jQuery = window.$ = require('jquery');

我发现上面这句话是这么多人建议的。但我只是在加载页面时出错。只是一些例子:一些所谓的问题,网页问题,另一个所谓的问题。

后来我发现了这个问题,还有这个问题。因此,页面实际上与引导js功能一起工作。

如果相关,我也会添加我的package.json:

{
  "author": "franklingu",
  "dependencies": {
    "babel": "^6.5.2",
    "babel-core": "^6.13.2",
    "babel-loader": "^6.2.4",
    "bootstrap-loader": "^1.2.0-beta.1",
    "bootstrap-sass": "^3.3.7",
    "extract-text-webpack-plugin": "^1.0.1",
    "jquery": "^3.1.0",
    "node-sass": "^3.8.0",
    "resolve-url-loader": "^1.6.0",
    "sass-loader": "^4.0.0",
    "webpack": "^1.13.1",
    "webpack-bundle-tracker": "0.0.93"
  },
  "devDependencies": {
    "babel-core": "^6.13.2",
    "babel-loader": "^6.2.4",
    "css-loader": "^0.23.1",
    "file-loader": "^0.9.0",
    "node-sass": "^3.8.0",
    "resolve-url-loader": "^1.6.0",
    "sass-loader": "^4.0.0",
    "style-loader": "^0.13.1",
    "url-loader": "^0.5.7",
    "webpack": "^1.13.1"
  }
}

我是新的webpack,但我不是新的JS。我想知道为什么窗口.$不工作。

我想知道,对于webpack,为什么有些人在插件中建议这样做:

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

有些人建议这样做(对我也不起作用):

 resolve: {
    alias: {
        jquery: "jquery/src/jquery"
    }
}

当时我玩了一段时间node,我记得node使用requestjs进行加载(不过我不太清楚common与require与amd之间的区别)。但是为什么有些人提到公共js?

我开发后端已经有一段时间了,而我刚刚开始开发前端——出现了很多问题。如果你能给我提供一些阅读指南的链接就足够了,这些指南可以消除我的疑虑/建立我对这些的基本理解。

共有3个答案

李兴庆
2023-03-14

我知道这有点旧,但我还是这样做了:

global.jQuery=require('jQuery');需要(“引导”);

燕禄
2023-03-14

插件是不需要的。只需使用以下条目:

entry: [
    'jquery', //will load jquery from node_modules
    './assets/js/index',
]

然后在ES6文件中使用:

import $ from "jquery";
秦权
2023-03-14

添加这个插件

  new webpack.ProvidePlugin({
   $: "jquery",
   jQuery: "jquery"
  })

您应该能够在整个项目中使用jquery。

如果添加插件后问题仍然存在,请尝试重新启动您的nodejs服务器。记住使用npm安装--保存jQuery安装jQuery

 类似资料:
  • 问题内容: 我刚刚开始学习使用Webpack(以前,我只是使用手动方式分别包含各个脚本)。我用来加载引导程序。这是我的webpack.config.js 这是我的entry.js 这似乎有效。但是,我之前使用过它,但是它不起作用: 我发现有很多人建议使用上述方法。但是我只是在加载页面时出错。,webpack问题 后来我找到了这个问题,。因此,该页面实际上也可以与bootstrap js功能一起使用

  • 我正在与Spring Boot一起使用JDBI。我遵循了本指南,这导致必须创建一个类:<code>JdbiConfig</code>,对于应用程序上下文中需要的每个dao,您必须添加: 我想知道Spring Boot是否有办法创建一个定制的处理器来创建beans并将它们放入应用程序上下文中。我有两个想法: 使用自定义注释注释DAO并编写一些东西来提取它们。我尝试过只是手动将这些注入到应用程序启动中

  • 试图按照官方手册实现一个模块时,我收到了以下错误消息: 但在我的代码中没有任何地方使用过这个名称。 我该怎么解决这个?

  • 我正在使用webpack将一些boostrap和其他css文件捆绑在一起,下面是webpack.config.js文件var htmlWebPack=require('html-webpack-plugin');var ExtractTextPlugin=require(“extract-text-webpack-plugin”); 我引用了main.ts文件中的引导文件夹,如下所示 但是当我运行

  • 当我启动应用程序时,我没有看到任何错误,但是是一个空数组。组件本身位于。我试着直接加载图像: 但无论我指定的路径是什么,如果出现错误,它就不能正常工作了。但是,我需要从文件夹加载所有图像,而不是静态加载,因为我事先不知道图像的名称。如有任何建议,将不胜感激。

  • 我正在AnyLogic中构建一个DES队列模型。我之前已经构建了几个模型,在这些模型中,我使用定义自己的代理类型来存储代理参数,例如,这些参数改变了它们在队列网络中的流动方式。在过去,这并没有引起错误。但是,在构建了一个新的、非常简单的M/M/1队列模型(源、服务和接收器)并定义了一个新的代理类型“myAgent”之后,即使我没有保存或访问任何代理属性,我也会遇到错误: 看来,或许是新定义的代理不