WebPack如何捆绑后端代码

时间:2017-03-09 08:04:54

标签: webpack webpack-2

我想使用WebPack捆绑后端代码。根据其他stackoverflow答案的建议,我使用了here所描述的配置文件:

var webpack = require('webpack');
var path = require('path');
var fs = require('fs');

var nodeModules = {};
fs.readdirSync('node_modules')
  .filter(function(x) {
    return ['.bin'].indexOf(x) === -1;
  })
  .forEach(function(mod) {
    nodeModules[mod] = 'commonjs ' + mod;
  });

module.exports = {
  entry: './src/main.js',
  target: 'node',
  output: {
    path: path.join(__dirname, 'build'),
    filename: 'backend.js'
  },
  externals: nodeModules
}

但即使在阅读了解释为什么我们必须将node_module中的所有模块列为外部的文章后,我仍然感到困惑,为什么我们必须采取这一步骤,为什么没有它,我们会收到此错误:

WARNING in ./~/express/lib/view.js
Critical dependencies:

特别是有人可以解释这一段以及require('express')src/main.js具体如何解决这个问题:

  

但是有一个问题。 Webpack将从中加载模块   node_modules文件夹并将它们捆绑在一起。这适用于前端   代码,但后端模块通常不为此做好准备(即   以奇怪的方式使用require)或更糟的是二进制依赖。我们   根本不想从node_modules捆绑任何东西。

我想更好地理解WebPack中的这一步,所以我不只是盲目地复制配置文件并自满而言它有效。

由于

0 个答案:

没有答案