解决了一个未找到stompJS-lib的问题,在此问题上,我收到以下错误消息:
Module not found: Error: Can't resolve 'net' in '/../../../.../../../angular-app/node_modules/stompjs/lib'
答案 0 :(得分:7)
使用以下命令解决了该问题:
npm i net -S
答案 1 :(得分:6)
要在Arthur Costa answer上进行扩展,如果您使用的是NextJS,则可以在配置文件中添加一个配置,以防止特定导入时出现此问题。
将这些行添加到根项目文件夹中名为next.config.js
的文件中:
module.exports = {
webpack: (config, { isServer }) => {
if (!isServer) {
config.node = {
net: 'empty'
};
}
return config;
}
}
如果其他内置模块出现问题,您也可以在net
旁边添加这些模块。
来源:https://github.com/vercel/next.js/issues/7755#issuecomment-508633125
答案 2 :(得分:5)
webpack v5(添加到 module.exports 中的 webpack.config.js):
resolve: {
fallback: {
net: false
}
},
答案 3 :(得分:2)
答案 4 :(得分:1)
如果您使用的是 Laravel,请执行以下操作:
安装:
npm install util browserify-fs tls-browserify net-browserify stream-http https-browserify path-browserify crypto-browserify stream-browserify browserify-zlib os-browserify
在 Webpack.mix.js 中包含这个:
mix.webpackConfig({ 解决: { 倒退: { "child_process": '空', "fs": require.resolve("browserify-fs"), "util": require.resolve("util"), "http": require.resolve("stream-http"), "https": require.resolve("https-browserify"), "tls": require.resolve("tls-browserify"), "net": require.resolve("net-browserify"), "crypto": require.resolve("crypto-browserify"), "path": require.resolve("path-browserify"), "os": require.resolve("os-browserify"), "stream": require.resolve("stream-browserify"), "zlib": require.resolve("browserify-zlib") } } });
如果您不使用 Laravel,请将其包含在:Webpack.config.js 或您的 Webpack 配置文件中。
resolve: {
fallback: {
"child_process": 'empty',
"fs": require.resolve("browserify-fs"),
"util": require.resolve("util"),
"http": require.resolve("stream-http"),
"https": require.resolve("https-browserify"),
"tls": require.resolve("tls-browserify"),
"net": require.resolve("net-browserify"),
"crypto": require.resolve("crypto-browserify"),
"path": require.resolve("path-browserify"),
"os": require.resolve("os-browserify"),
"stream": require.resolve("stream-browserify"),
"zlib": require.resolve("browserify-zlib")
}
}
为什么会这样?
不要生他的气,他只想知道怎么处理,你需要指明相应的模块或者设置为'false'。
如果您知道这不能解决,您可以回滚安装:
npm remove util browserify-fs tls-browserify net-browserify stream-http https-browserify path-browserify crypto-browserify stream-browserify browserify-zlib os-browserify
替代
resolve: {
fallback: {
"child_process": false,
"process": false,
"fs": false,
"util": false,
"http": false,
"https": false,
"tls": false,
"net": false,
"crypto": false,
"path": false,
"os": false,
"stream": false,
"zlib": false
}
}
答案 5 :(得分:0)
ERROR in ./node_modules/@google/maps/node_modules/https-proxy-agent/index.js
Module not found: Error: Can't resolve 'net' in 'C:\.....\...\node_modules\@google\maps\node_modules\https-proxy-agent'
ERROR in ./node_modules/@google/maps/node_modules/https-proxy-agent/index.js
Module not found: Error: Can't resolve 'tls' in 'C:\...\....\node_modules\@google\maps\node_modules\https-proxy-agent'
此问题可通过安装: npm i tls -S 然后安装 npm我网-S
答案 6 :(得分:0)
这是因为Net
是NodeJS的一部分,因此它在浏览器中不存在。
https://nodejs.org/api/net.html#net_net
更好地更新您的Webpack配置
node: {
net: 'empty',
},
答案 7 :(得分:0)
为了扩展现有答案,特别是对于 stompjs
,如果您只需要在浏览器环境中使用它,那么您可以使用基础 stomp.js
- 它会在浏览器中正常运行.它位于/node_modules/stompjs/lib/stomp.js
。
因此,将此别名添加到您的 webpack 配置中即可解决该问题,而无需将特定的节点依赖项列入黑名单。
resolve: {
alias: {
'stompjs': __dirname + '/node_modules' + '/stompjs/lib/stomp.js',
}
}
答案 8 :(得分:0)
这不是原始问题的直接答案,而是针对那些从搜索中遇到类似问题并打包使用 Node.js 运行的服务器端(或用户空间)应用程序的人。正确的解决方法是使用 Node 目标参数:
-t, --target <value...> Sets the build target e.g. node.