【发布时间】:2018-07-18 17:18:10
【问题描述】:
我正在实现一个基于 node.js 的 Web API。 API 可以与数据库交互。所以我使用node-postgres 库作为数据访问层。 现在我需要以正确的方式配置 webpack,以便将 api 捆绑在一个文件中。但是,由于 node-postgres 依赖“pg-native”,我不能这样做。我只能在 webpack.config.js 中用这段代码构建 api:
externals: {
'pg': 'commonjs pg'
}
但这个解决方案迫使我在部署 API 时保留 node_modules 文件夹。
这是我的 webpack.config.js:
var path = require('path');
var nodeNativeModules = {};
module.exports = function(environment) {
var entryCfg = '';
switch(environment){
case 'development':
entryCfg = { 'main_ts': './src/api/main.ts'};
break;
}
var CONFIG = {
entry: entryCfg,
target: 'node',
output: {
path: path.join(__dirname, 'dist/'),
filename: '[name].js'
},
resolve: {
extensions: ['.ts', '.js', '.json'],
},
externals: {
'pg': 'commonjs pg'
},
module: {
loaders: [{
test: /\.json$/,
loader: 'json-loader'
}, {
test: /\.ts$/,
loaders: [
'awesome-typescript-loader',
],
exclude: [/\.(spec|e2e)\.ts$/]
},]
},
devtool: 'source-map'
}
return CONFIG;
}
有没有可能捆绑 node-postgres 的方法? 如何配置 webpack 以捆绑原生模块依赖项?
【问题讨论】:
-
我的这个 webpack 扩展可以帮助我吗? github.com/webpack-contrib/node-loader
-
pg-native在 C++ 中。您如何期望 C++ 与 JavaScript 放在一个文件中? :) 那是不可能的 ;) -
没错,但也许 webpack 可以通过依赖关系移动这个文件,而不是将所有 node_modules 保留在服务器上?
标签: javascript node.js webpack node-postgres