Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – 使用webpack-dev-server运行节点express服务器大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用webpack使用以下配置成功运行我的反应前端:

{
    name: 'client',entry: './scripts/main.js',output: {
        path: __dirname,filename: 'bundle.js'  
    },module: {
        loaders: [
            {
                test: /.jsx?$/,loader: 'babel-loader',exclude: /node_modules/,query:{
                    presets: ['es2015','react','stage-2']
                }
            }
        ]
    }
}

我也试图搭建一个node.js express后端,并希望通过webpack来运行,所以我有一台服务器运行后端和前端,因为我想使用babel来扫描我的javascript

做了一个快速的测试者看起来像这样

var express = require('express');
console.log('test');

var app = express();

app.get('/',function(req,res){
    res.send("Hello world from Express!!");
});

app.listen(3000,function(){
    console.log('Example app listening on port 3000');
});

如果我运行这个node.js节点,并打开我的浏览器在本地主机:3000它打印“Hello world from Express !!”。到现在为止还挺好。然后我尝试为它创建一个web-pack配置:

var fs = require('fs');
var nodeModules = {};
fs.readdirSync('node_modules')
    .filter(function(X) {
        return ['.bin'].indexOf(X) === -1;
    })
    .forEach(function(mod) {
        nodeModules[mod] = 'commonjs ' + mod;    
});

module.exports = [
{
    name: 'server',target: 'node',entry: './index.js',filename: 'bundle.js'
    },externals: nodeModules,module: {
        loaders: [
            { 
                test: /\.js$/,loaders: [
                    'babel-loader'
                ]
            },{
                test:  /\.json$/,loader: 'json-loader'
            }
        ]
    }
}

当我运行命令webpack-dev-server它启动成功(似乎)。然而,如果我现在在localhost:3000上浏览我的浏览器,那就只是说网页不可用,就像服务器根本没有运行一样。

我对于节点和webpack都很新,所以我在某个地方犯了一个错误,或者我已经离开了;)

解决方法

Webpack-dev-server非常适合客户端开发,但不会部署Express api或中间件。所以在开发中,我建议运行两个单独的服务器:一个用于客户端,一个用于服务器端api。

nodemon npm安装–save-dev nodemon一个很好的后端开发服务器,可以让您重新部署您的api,或者您可以在进行更改时使用express并重新启动。在生产中,客户端和api仍然由同一个快递服务器提供服务。

为您的package.json中的nodemon和webpack-dev-server设置一个生命周期事件,以便轻松启动它们(例如:npm运行dev-server)。

"scripts": {
   "start": "webpack --progress --colors","dev-server": "nodemon ./server.js localhost 8080","dev-client": "webpack-dev-server --port 3000",}

或者,直接从节点运行express:

"scripts": {
   "start": "webpack --progress --colors","dev-server": "node dev-server.js",}
// dev-server.js
const express = require('express');
const app = express();
// Import routes
require('./_routes')(app);   // <-- or whatever you do to include your API endpoints and middleware
app.set('port',8080);
app.listen(app.get('port'),function() {
    console.log('Node App Started');
});

注意:api服务器必须使用与webpack-dev-server不同的端口。

最后在您的webpack-dev-config中,您需要使用代理将呼叫重定向到您的api到新端口:

devServer: {
  historyApifallBACk: true,hot: true,inline: true,host: 'localhost',// Defaults to `localhost`
  port: 3000,// Defaults to 8080
  proxy: {
    '^/api/*': {
      target: 'http://localhost:8080/api/',secure: false
    }
  }
},// and separately,in your plugins section
plugins: [
  new webpack.HotModulereplacementPlugin({
    multiStep: true
  })
]

**一个脚本启动和杀死两个奖金积分

大佬总结

以上是大佬教程为你收集整理的node.js – 使用webpack-dev-server运行节点express服务器全部内容,希望文章能够帮你解决node.js – 使用webpack-dev-server运行节点express服务器所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。