Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.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
Node.js Web包开发中间件不服务于我的客户端_Node.js_Webpack_Webpack Dev Server_Webpack Dev Middleware - Fatal编程技术网

Node.js Web包开发中间件不服务于我的客户端

Node.js Web包开发中间件不服务于我的客户端,node.js,webpack,webpack-dev-server,webpack-dev-middleware,Node.js,Webpack,Webpack Dev Server,Webpack Dev Middleware,我在服务器端有一个nodejs应用程序,在客户端有一个vue应用程序 我希望我的服务器端在访问某些URL(例如“/”)时为我的客户端提供服务 我的客户端在project\u root/frontend下,我的服务器在project\u root/server 这是我的server/app.js文件: const webpackConfig = require('./webpack.config.js') const webpack = require('webpack'); const webp

我在服务器端有一个nodejs应用程序,在客户端有一个vue应用程序

我希望我的服务器端在访问某些URL(例如“/”)时为我的客户端提供服务

我的客户端在
project\u root/frontend
下,我的服务器在
project\u root/server

这是我的
server/app.js
文件:

const webpackConfig = require('./webpack.config.js')
const webpack = require('webpack');
const webpackMiddleware = require('webpack-dev-middleware');
const compiler = webpack(webpackConfig);

const app = express();

if(process.env['FUNDME_DEV']) {
  app.use(webpackMiddleware(compiler, {
    publicPath: path.join(__dirname, '/../frontend/dist')
  }))
} else {
  //production
  app.use(express.static(path.join(__dirname, '/../frontend/dist')));
}
app.listen(port, () => {
  console.log(`server started, listening on port ${port}`)
})
我的webpack.config.js文件主要是猜测和复制vue cli在我创建前端时为我创建的文件,因此它可能是错误的,但在开发模式下运行服务器时(
export FUNDME_dev=1
)的输出表明编译成功

但是,当我尝试访问我的应用程序时,我得到了“无法获取/”,中间件没有提供任何服务:(

我不知道我遗漏了什么,也不知道我的网页配置应该是什么样子,我发现其他类似的问题都没有帮助

我该怎么办?

constwebpackconfig=require('./webpack.config.js'))
const webpackConfig = require('./webpack.config.js')
const webpack = require('webpack');
const webpackMiddleware = require('webpack-dev-middleware');
const compiler = webpack(webpackConfig);

const app = express();

if(process.env.NODE_ENV === 'development') { // you don't have to compile the content first, just start this as dev.
  app.use(webpackMiddleware(compiler, {
    publicPath: '/' // <--- this has to be the same publicPath that you inserted on your webpack config, otherwise you could leave this as /
  }))
} else {
  //production
  app.use(express.static(path.join(__dirname, '/../frontend/dist')));
}
app.listen(port, () => {
  console.log(`server started, listening on port ${port}`)
})
const webpack=require('webpack'); const webpackMiddleware=require('webpack-dev-middleware'); const compiler=webpack(webpackConfig); 常量app=express(); 如果(process.env.NODE_env==='development'){//您不必首先编译内容,只需以dev的身份启动它即可。 应用程序使用(Web包中间件(编译器、{ 公共路径:'/'//{ log(`server started,监听端口${port}`) })
webpack devMiddleware不提供“内置”服务文件,它们在内存中构建并从内存中提供服务。这就是你想要做的吗?是的。我不希望它服务于静态文件,恰恰相反。我希望它在内存中编译,以便在开发过程中快速应用更改,我应该将我的网页包配置放在什么路径上?我不确定如果打算服务于res,它将扮演什么角色你的网页包配置在编译器上运行,然后进入MiddleWare,将公共路径设置为“/”,它确实提供了一些服务,但不是我想要的。它提供了一个已编译的js文件,但没有index.html。我仍然缺少一些我添加的
HtmlWebpackPlugin
,现在我得到了一个html,并对它进行排序f查看我的应用程序。但是它显示得很糟糕,比如可能缺少一些css,或者vuetify(我使用的)没有正确编译/交付。有什么提示吗?生成一个构建,看看在html上插入链接标签(css)的路径是什么。这是一个很好的开始