如何使用 webpack 在 nodejs 应用程序中包含 jquery?

Posted

技术标签:

【中文标题】如何使用 webpack 在 nodejs 应用程序中包含 jquery?【英文标题】:How to include jquery in nodejs app using webpack? 【发布时间】:2018-03-07 07:30:36 【问题描述】:

这是我的 webpack.config.js

var webpack = require("webpack");

module.exports = 
    entry: './app.js',
    output: 
        filename: './bundle.js'
    ,
    module: 
        loaders: [
            
                test: /\.js$/,
                exclude: /node_modules/,
                loader: 'babel-loader',
                query: 
                    presets: ['es2015']
                
            
        ],
    ,
    plugins: [
        new webpack.ProvidePlugin(
            $: "jquery",
            jQuery: "jquery"
        )
    ]
;

这是我的 app.js

var $ = require('jquery');
global.jQuery = $;
global.$ = $;
require('jquery');
console.log('Hello from Webpack');
$('#serviceContainer').hide();

所以当我运行 node app.js 来启动我的 node 应用程序时,它需要 jquery 并且它会抛出以下错误。

 throw new Error( "jQuery requires a window with a document" );

所以我需要知道如何使用 webpack 在 nodejs 中包含 jquery。如果有人知道请帮忙。在此先感谢!

【问题讨论】:

为什么在nodejs应用中需要jquery? Nodejs 在后端运行,而 jquery 在前端运行。您收到此错误,因为它无法检测到任何窗口,即浏览器窗口 【参考方案1】:

jQuery 在全局上下文(窗口)中

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

提供者插件

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

【讨论】:

【参考方案2】:

使用 nodejs,您可以创建 Web 应用程序的服务器端,而 jquery 是一个 JS 库,它允许您操作网页客户端的 DOM,因此 jquery 必须在您的 html 页面上使用。在服务器端,您必须创建一个简单的 http 服务器,向客户端发送正确的 html 页面。

【讨论】:

正确。你想用 jquery 做什么?也许还有另一个适合你的图书馆

以上是关于如何使用 webpack 在 nodejs 应用程序中包含 jquery?的主要内容,如果未能解决你的问题,请参考以下文章

在 nodejs 的服务器端使用 webpack

在heroku上部署Nodejs+Express+React+Webpack应用

如何使用 Webpack 捆绑 Express Js (NodeJs) 和 Pug 引擎?

如何管理 Webpack/Electron 应用程序的配置?

如何使用带有羽毛/快递的 webpack-dev-middleware?

Webpack 入门