【问题标题】:Bundling node.js web API with webpack使用 webpack 捆绑 node.js Web API
【发布时间】: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


【解决方案1】:

由于我不使用“pg-native”,我的问题变成了 webpack 配置问题。 这是对我有帮助的答案https://github.com/serverless-heaven/serverless-webpack/issues/78

【讨论】:

    猜你喜欢
    • 2016-12-23
    • 2015-07-20
    • 2018-04-01
    • 2020-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-04
    • 2017-02-03
    相关资源
    最近更新 更多