Error: Cannot find module "socket.io-client/package" when building with webpack
Error: Cannot find module "socket.io-client/package" when building with webpack
尝试使用 socket.io 构建简单的聊天服务器应用程序,并 assemble 使用 webpack 将其压缩到一个 js 文件中。应用程序在没有 webpack 组装的情况下运行良好。但是当我尝试使用 webpack assemble 我所有的脚本时,它会抛出错误:
Error: Cannot find module "socket.io-client/package"
我在 socket.io 库中找到了需要调用方法的地方。它在 socket.io/lib/index.js 文件中的第 11 行。
var clientVersion = require('socket.io-client/package').version;
据我所知,socket.io 需要 package.json 它的依赖项 socket.io-客户端库。我试图添加一个 json 加载程序,但它没有帮助。不知道下一步怎么办。
main.js:
var io = require('socket.io');
var listener = io(9999);
...
webpack.config
var webpack = require('webpack');
module.exports = {
entry: './src/main.js',
target: 'node',
output: {
path: './temp',
filename: 'chat-server.js'
},
module: {
loaders: [
{ test: /\.json$/, loader: 'json' }
]
}
}
您需要 json-loader
。安装它。
我认为您还需要告诉 webpack 查找 json 文件。您可以使用 resolve.extensions
选项来做到这一点。只需在此处包含 '.json'
。
我建议的更好的解决方案是使用 webpack replace plugin 并将该字符串替换为实际版本。像这样:
new webpack.NormalModuleReplacementPlugin('require(\'socket.io-client/package\').version', require('socket.io-client/package').version)
尝试使用 socket.io 构建简单的聊天服务器应用程序,并 assemble 使用 webpack 将其压缩到一个 js 文件中。应用程序在没有 webpack 组装的情况下运行良好。但是当我尝试使用 webpack assemble 我所有的脚本时,它会抛出错误:
Error: Cannot find module "socket.io-client/package"
我在 socket.io 库中找到了需要调用方法的地方。它在 socket.io/lib/index.js 文件中的第 11 行。
var clientVersion = require('socket.io-client/package').version;
据我所知,socket.io 需要 package.json 它的依赖项 socket.io-客户端库。我试图添加一个 json 加载程序,但它没有帮助。不知道下一步怎么办。
main.js:
var io = require('socket.io');
var listener = io(9999);
...
webpack.config
var webpack = require('webpack');
module.exports = {
entry: './src/main.js',
target: 'node',
output: {
path: './temp',
filename: 'chat-server.js'
},
module: {
loaders: [
{ test: /\.json$/, loader: 'json' }
]
}
}
您需要 json-loader
。安装它。
我认为您还需要告诉 webpack 查找 json 文件。您可以使用 resolve.extensions
选项来做到这一点。只需在此处包含 '.json'
。
我建议的更好的解决方案是使用 webpack replace plugin 并将该字符串替换为实际版本。像这样:
new webpack.NormalModuleReplacementPlugin('require(\'socket.io-client/package\').version', require('socket.io-client/package').version)