我写了一个非常基本的express.js应用程序。然后试图使它成为一个.js文件。Browserify编译整个东西到一个文件。但browserify编译的代码不工作。据我所知,browserify只是用模块代码替换require语句。错误是:
C:\Users\HP\n\express\app.js:27025
__proto__: http.IncomingMessage.prototype
^
TypeError: Cannot read property 'prototype' of undefined
at Object.__dirname.173.accepts (C:\Users\HP\n\express\app.js:27025:34)
at s (C:\Users\HP\n\express\app.js:1:316)
at C:\Users\HP\n\express\app.js:1:367
at Object.__dirname.170../application (C:\Users\HP\n\express\app.js:26823:11)
at s (C:\Users\HP\n\express\app.js:1:316)
at C:\Users\HP\n\express\app.js:1:367
at Object.__dirname.168../lib/express (C:\Users\HP\n\express\app.js:26154:18)
at s (C:\Users\HP\n\express\app.js:1:316)
at C:\Users\HP\n\express\app.js:1:367
at Object.__dirname.153.express (C:\Users\HP\n\express\app.js:24010:15)
2条答案
按热度按时间toe950271#
Node.js支持许多浏览器不支持的模块,这些模块必须由builtins模拟。这些模块将被特定于浏览器的shim所取代。有些模块只提供在浏览器中有意义的节点API的子集。
因此,您正在运行一个应用程序,该应用程序已经转换了所有Node.js模块,以支持在浏览器中运行它所能运行的模块,回到Node中,其中模块可用,但不再使用。
尝试使用rollup,或者您也可以配置babel以满足您的需要
w7t8yxp52#
我有这个非常相同的问题,但就像你说的编译代码应该在服务器端工作。我解决了它从这个链接:https://www.linkedin.com/pulse/bundling-nodemodules-your-nodejs-app-one-single-file-xuan-son-nguyen/
使用browserify进行捆绑,使用terser进行缩小。首先全局安装它们:
接下来,我们必须向package.json添加一个构建脚本
每次要提升到生产环境时,都必须创建一个新的捆绑包:
将创建一个名为“bundle.js”的新文件。
希望有和平,和平就有了。快乐编码。