webpack-dev-server 取不到元素节点。。。

查看:164
本文介绍了webpack-dev-server 取不到元素节点。。。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

RT webpack-dev-server 取不到元素节点。。。

配置如下:

webpack-dev-server启动文件:


var webpack = require('webpack');
var WebpackDevServer = require('webpack-dev-server');
var config = require('./webpack.server.config.js');
var devPort = 8080;

//批量处理client websocket 热加载脚本
for (var i in config.entry) {
    config.entry[i].unshift('webpack-dev-server/client?http://0.0.0.0:' + devPort, 'webpack/hot/dev-server');
}
config.plugins.push(new webpack.HotModuleReplacementPlugin());

//启动服务器
var server = new WebpackDevServer(webpack(config), {
    contentBase: 'src',
    publicPath: config.output.publicPath,
    hot: true, //热替换开启
    stats: {
        colors: true
    }
});
server.listen(devPort, function(err) {
    if (err) {
        console.log(err);
        return;
    }
    console.log('dev server on http://0.0.0.0:' + devPort + '\n');
});

webpack.server.config.js文件

var webpack = require('webpack');
var path = require('path');
module.exports = {
    //入口文件
    entry: {
        index: ['./src/js/entry1']
    },
    //输出目录
    output: {
        path: path.resolve(__dirname, 'dist'),
        filename: 'js/[name].js',
        publicPath: '/dist/'
    },
    //加载器
    module: {
        loaders: [{ test: /\.css$/, loader: 'style-loader!css-loader' }, {
            test: /\.js$/,
            exclude: './node_modules',
            use: [{
                loader: 'babel-loader',
                options: { presets: ['es2015'] }
            }]
        }]
    },
    //插件
    plugins: []
};

entry1.js入口文件

var header=document.getElementById('header');
console.log(header);//输出null

html文件index.html

<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>webpack</title>
    <meta name="description" content="This web page is my webpack.">
    <meta name="keywords" content="codelab">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">

    <script src="http://localhost:8080/dist/js/index.js"></script>
</head>

<body>
    <header id="header">
        <nav class='clearfix'>
            <div class="logo"><em>`W</em>EBPACK</div>
            <ul class="nav-menu">
                <li><a class="active" href="#">Home</a></li>
                <li><a href="#">About</a></li>
                <li><a href="#">Services</a></li>
                <li><a href="#">Works</a></li>
                <li><a href="#">Contact</a></li>
            </ul>
        </nav>
    </header>
</body>

</html>

获取一个元素并console.log就会输出null...不知道怎么回事。。
哪位知道是什么问题望不吝赐教,webpack这个服务器净出错。。都不想用了

解决方案

var server = new WebpackDevServer(webpack(config), {
    contentBase: './',  //这里我改成了自己的根目录
    publicPath: config.output.publicPath,
    hot: true, //热替换开启
    stats: {
        colors: true
    }
});

输出结果如下,可以看到console的输出:

你可以试下,改成自己页面所在的根目录,应该是目录结构的问题

这篇关于webpack-dev-server 取不到元素节点。。。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆