Javascript &引用;jQuery需要一个带有文档的窗口;网页包2错误
我将我的节点应用程序与webpack2捆绑在一起,我使用JQuery和jade作为前端。在运行我的应用程序时,我遇到此错误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
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(){)
文件之前被拉入