我正在尝试使用webpack构建我们的NodeJS后端。
将节点模块打包在一起捆绑是否可行,我找不到确切的答案。
目前,我已经构建了代码,但是必须手动安装节点模块。
const webpack = require('webpack');
const path = require('path');
const Dotenv = require('dotenv-webpack');
const nodeExternals = require('webpack-node-externals');
module.exports = {
entry: './bin/www',
target: 'node',
output: {
path: path.join(__dirname, 'build'),
filename: 'bundle.js',
},
externals: [nodeExternals()],
devtool: 'sourcemap',
plugins: [
new Dotenv(),
new webpack.BannerPlugin({
banner: 'require("source-map-support").install();',
raw: true,
entryOnly: false,
})
],
};
如果我手动安装节点模块,则此构建工作正常。 (npm i)
我想给我们的主机一个即插即用类型的存档,但要注释掉我得到的nodeExternals:
./ node_modules / mongoose / lib / drivers / index.js中的警告10:13-49 关键依赖项:依赖项的请求是一个表达式@ ./node_modules/mongoose/lib/schema.js @ ./node_modules/mongoose/lib/index.js @ ./node_modules/mongoose/index.js @ ./app.js @ ./bin/www
./ node_modules / require_optional / index.js中的警告82:18-42严重 依赖项:依赖项的请求是一个表达式@ ./node_modules/mongodb-core/index.js @ ./node_modules/mongodb/index.js @ ./node_modules/mongoose/lib/index.js @ ./node_modules/mongoose/index.js @ ./app.js @ ./bin/www
./ node_modules / express / lib / view.js中的警告78:29-56严重 依赖项:依赖项的请求是一个表达式@ ./node_modules/express/lib/application.js @ ./node_modules/express/lib/express.js @ ./node_modules/express/index.js @ ./app.js @ ./bin/www
./ node_modules / es6-promise / dist / es6-promise.js中的警告模块不 找到:错误:无法解析“ vertx” 'D:\ repos \ alms-web-portals \ node_modules \ es6-promise \ dist'@ ./node_modules/es6-promise/dist/es6-promise.js @ ./node_modules/mongodb/lib/cursor.js @ ./node_modules/mongodb/index.js @ ./node_modules/mongoose/lib/index.js @ ./node_modules/mongoose/index.js @ ./app.js @ ./bin/www
该捆绑包包含node_modules,服务器正在运行,但是对API的任何调用均会因请求错误而失败。