Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript &引用;jQuery需要一个带有文档的窗口;网页包2错误_Javascript_Jquery_Node.js_Webpack_Webpack 2 - Fatal编程技术网

Javascript &引用;jQuery需要一个带有文档的窗口;网页包2错误

Javascript &引用;jQuery需要一个带有文档的窗口;网页包2错误,javascript,jquery,node.js,webpack,webpack-2,Javascript,Jquery,Node.js,Webpack,Webpack 2,我将我的节点应用程序与webpack2捆绑在一起,我使用JQuery和jade作为前端。在运行我的应用程序时,我遇到此错误 node_modules\jquery\dist\jquery.js:31 throw new Error( "jQuery requires a window with a document" ); ^ Error: jQuery requires a window with a document 我曾经 var$=require(“jquery”) 在所有前端java

我将我的节点应用程序与webpack2捆绑在一起,我使用JQuery和jade作为前端。在运行我的应用程序时,我遇到此错误

node_modules\jquery\dist\jquery.js:31
throw new Error( "jQuery requires a window with a document" );
^
Error: jQuery requires a window with a document
我曾经

var$=require(“jquery”)

在所有前端javascript文件中

我试过这个

这是为了,

    {
        test: require.resolve('jquery'),
        loader: 'expose?$!expose?jQuery'
    },
我如何处理这个问题

webpack.config.js

var path = require('path');
var nodeExternals = require('webpack-node-externals');
const webpack = require('webpack');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const ExtractTextPlugin = require('extract-text-webpack-plugin');

module.exports = {
    target: 'node',
    entry: {
        app: ['babel-polyfill', './bin/run.js'],
    },
    output: {
        path: './build',
        filename: '[name].min.js'
    },
    externals: [nodeExternals()],
    plugins: [
        new HtmlWebpackPlugin()
    ],
    module: {
        rules: [
            {
                test: /\.js$/,
                loader: 'babel-loader',
                exclude: /lodash/
            },
            {
                test: /\.jade$/,
                loader: 'jade-loader'
            },
            {
                test: /\.css$/,
                use: [
                    {loader: 'style-loader'},
                    {
                        loader: 'css-loader',
                        options: {
                            modules: true
                        }
                    }
                ]
            },
        ],
        noParse: [/ws/]
    }
};

jQuery只能在前端(浏览器)上使用

看起来您正试图在节点本身中使用它来引用回
$

需要注意的是,jQuery不支持服务器端呈现


->
var$=require(“jquery”)不起作用。

请参阅-感谢您的回复,我通过npm安装了jquery,并使用
app.use(express.static(“node_modules/jquery/dist”))将jquery传递给客户端,从Web包中获取一些错误后,我使用了此声明。如果我删除了这个,我会得到这个错误
$(函数(){^ReferenceError:$未定义
@danjonescidtrixthanks作为回复,我通过npm安装了jquery,并使用
app.use(express.static(“node_modules/jquery/dist”)将jquery传递给客户端);
,在从网页包中获取一些错误后,我使用了此声明。如果我删除此声明,我将得到此错误
$(函数(){^ReferenceError:$未定义
@0x616fy您应该将其作为脚本标记src
包含在浏览器呈现的HTML代码(在头部)中是的,我将其包含在我的jade文件中,如下所示,
脚本(src='/jquery.js',type='text/javascript',crossorigin=“anonymous”)
@0x616fIf您“查看源代码”并打开“/jquery.js”文件,它是否正确打开?它还需要在任何
$(function(){)
文件之前被拉入