[英]Error: Cannot find module “.”
我正在將Angular Universal,Express和Webpack一起使用。 我使用以下git repo啟動了應用程序:
https://github.com/FrozenPandaz/ng-universal-demo
我似乎無法在main.server.ts中使用socket.io。 我可以導入它,但是在嘗試設置它時出現錯誤:
...
import * as express from 'express';
import * as socket from 'socket.io';
enableProdMode();
const app = express();
const server = require('http').Server(app);
const io = socket(server);
// . ^^ causes error
app.engine('html', ngExpressEngine({
bootstrap: ServerAppModule
}));
app.set('view engine', 'html');
app.set('views', 'src');
app.use('/', express.static('dist', {index: false}));
server.listen(1337);
app.get('test', (req, res) => {
res.render('../dist/index', {
req: req,
res: res
});
});
io.on('connection', (socket) => {
socket.on('register', (data) => {
socket.join(data);
user = data;
});
});
由於socket(server)
調用而導致發生錯誤,就好像我注釋掉該錯誤不會發生:
/Users/michaelwilson/Code/app/dist/server.js:101828
return /*require.resolve*/(!(function webpackMissingModule() { var e = new Error("Cannot find module \".\""); e.code = 'MODULE_NOT_FOUND'; throw e; }()));
^
Error: Cannot find module "."
at webpackMissingModule (/Users/michaelwilson/Code/app/dist/server.js:101828:76)
at resolvePath (/Users/michaelwilson/Code/app/dist/server.js:101828:154)
at Server.serveClient (/Users/michaelwilson/Code/app/dist/server.js:101831:25)
at new Server (/Users/michaelwilson/Code/app/dist/server.js:101770:8)
at Server (/Users/michaelwilson/Code/app/dist/server.js:101762:41)
at Object.<anonymous> (/Users/michaelwilson/Code/app/dist/server.js:113993:10)
at __webpack_require__ (/Users/michaelwilson/Code/app/dist/server.js:26:30)
at /Users/michaelwilson/Code/app/dist/server.js:94:18
at Object.<anonymous> (/Users/michaelwilson/Code/app/dist/server.js:97:10)
at Module._compile (module.js:570:32)
[nodemon] app crashed - waiting for file changes before starting...
我不確定還有什么嘗試,這是Webpack + Socket.io的問題嗎? 我找不到其他人遇到同樣的問題...
編輯:我已經跟蹤了socket.io庫中正在發生的代碼行,它試圖進行動態解析:
return /*require.resolve*/(!(function webpackMissingModule() { var e = new Error("Cannot find module \".\""); e.code = 'MODULE_NOT_FOUND'; throw e; }()));
我設法通過將serveClient
屬性設置為false
來擺脫此錯誤,如下所示:
const io = require('socket.io')(server, {
serveClient: false,
wsEngine: 'ws' // uws is not supported since it is a native module
});
https://github.com/socketio/socket.io/tree/master/examples/webpack-build-server https://socket.io/docs/server-api/#server-serveclient-value
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.