Webpack和Express-严重依赖项警告

Webpack和Express-严重依赖项警告,express,webpack,Express,Webpack,我有以下webpack.config.ts: var webpack = require( 'webpack' ); var path = require( 'path' ); module.exports = { entry: [ './api/bin/www.ts' ], output: { path: path.resolve( __dirname, './dist/api' ), filename: 'index.js' }, module

我有以下
webpack.config.ts

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

module.exports = {

  entry: [
    './api/bin/www.ts'
  ],
  output: {
    path: path.resolve( __dirname, './dist/api' ),
    filename: 'index.js'
  },
  module: {
    loaders: [
      { test: /\.ts$/, loader: 'awesome-typescript-loader' },
      { test: /\.json$/, loader: 'json-loader' }
    ]
  },
  resolve: {
    extensions: [ '', '.js', '.ts' ]
  },
  target: 'node',
  node: {
    console: true,
    fs: 'empty',
    net: 'empty',
    tls: 'empty'
  }
};
当我运行webpack时,会收到一条关于依赖关系的警告:

WARNING in ./~/express/lib/view.js
Critical dependencies:
78:29-56 the request of a dependency is an expression
@ ./~/express/lib/view.js 78:29-56
我开始使用的express server只不过是一个
Hello World
示例,而且的功能应该是正常的,但我担心这个警告


我的谷歌搜索引擎没有透露任何可行的解决方案。我已经看到了这个问题的一个特定实例,但解决方案是通过不显示警告来绕过警告。

使用webpack节点外部

const nodeExternals = require('webpack-node-externals');

{
  target: 'node',
  externals: [nodeExternals()],
}

对于那些由于此处提到的视图库而只需要删除express的用户,您还可以从您的Web包配置中显式地以externals中的express为目标


externals:[{'express':{commonjs:'express'}}]

除了排除要与nodeExternals绑定的所有npm依赖项之外,您还可以通过替换本机要求仅排除express

从“express”导入express;
//或
const express=require('express');

const express=\uuuuuu non\uu webpack\uu require\uuuuuuu('express');

这将抑制由express引起的警告

您可以包含view.js的代码吗?尝试使用webpack node externals plugin@leo,它不是我的repo中的文件,它只是通过express包含的。我想当我从express导入时,我真的很困惑。OP说这个文件是“webpack.config.*ts*”(我的重点),但我看到的其他所有东西都说这应该是一个.js文件,而且它的语法似乎与JavaScript文件更为一致。这只是一个打字错误吗?@Everettss太糟糕了,你没有提供这个提示作为答案。。。lol.这消除了我的错误,但它是如何不生成区块文件的?
Webpack:output server.0.chunk.js,Webpack:output server.1.chunk.js,Webpack:output server.2.chunk.js,Webpack:output server.3.chunk.js
我怎么能将import和require放在一起?@mohit,也许你忘了nodeExternal的圆括号,和我一样:):外部:[nodeExternal()]很好的解决方案。在我的例子中,我还需要将
输出:{…clientOutput,libraryTarget:'commonjs'},
添加到我的webpack.config,以避免module.exports=在我的包中未定义(根据)