Javascript 忽略缺少的依赖项

Javascript 忽略缺少的依赖项,javascript,npm,webpack,Javascript,Npm,Webpack,我在编译包时遇到一些问题。基本上,我有Webpack1.13和npm3,当我尝试捆绑我的文件时,我得到一个错误,即一些依赖项找不到。更具体地说,我导入了log4js包,得到了 ERROR in ./~/log4js/lib/appenders/hipchat.js Module not found: Error: Cannot resolve module 'hipchat-client' in c:\vhosts\not ifications-daemons\node_modules\log4

我在编译包时遇到一些问题。基本上,我有Webpack1.13和npm3,当我尝试捆绑我的文件时,我得到一个错误,即一些依赖项找不到。更具体地说,我导入了log4js包,得到了

ERROR in ./~/log4js/lib/appenders/hipchat.js
Module not found: Error: Cannot resolve module 'hipchat-client' in c:\vhosts\not
ifications-daemons\node_modules\log4js\lib\appenders
 @ ./~/log4js/lib/appenders/hipchat.js 2:20-45

ERROR in ./~/log4js/lib/appenders/loggly.js
Module not found: Error: Cannot resolve module 'loggly' in c:\vhosts\notificatio
ns-daemons\node_modules\log4js\lib\appenders
 @ ./~/log4js/lib/appenders/loggly.js 3:11-28

ERROR in ./~/log4js/lib/appenders/mailgun.js
Module not found: Error: Cannot resolve module 'mailgun-js' in c:\vhosts\notific
ations-daemons\node_modules\log4js\lib\appenders
 @ ./~/log4js/lib/appenders/mailgun.js 5:14-35

ERROR in ./~/log4js/lib/appenders/slack.js
Module not found: Error: Cannot resolve module 'slack-node' in c:\vhosts\notific
ations-daemons\node_modules\log4js\lib\appenders
 @ ./~/log4js/lib/appenders/slack.js 2:12-33

ERROR in ./~/log4js/lib/appenders/smtp.js
Module not found: Error: Cannot resolve module 'nodemailer' in c:\vhosts\notific
ations-daemons\node_modules\log4js\lib\appenders
 @ ./~/log4js/lib/appenders/smtp.js 4:13-34

问题是我的包中不需要所有这些可选模块。sequelize也是如此,webpack大喊我没有它支持的所有驱动程序,即使我只需要mysql驱动程序。是否有任何配置选项或插件可以忽略所有缺少的依赖项,让包在没有它们的情况下编译

是的,有一个插件可以帮你解决这个问题。您需要添加如下内容:

new webpack.IgnorePlugin(new RegExp("/(node_modules|nodemailer)/"))

到你的网页包插件。更多信息可以在这里找到:

当我试图捆绑一些依赖于log4j的包时,我遇到了相同的错误。我的网页版本是4.5.0。感谢的回答,我修复了webpack ignore插件的具体错误,并将下面的配置添加到我的webpack.config.js文件中


有了webpack 5和更高版本,IgnorePlugin的使用发生了变化。更新示例:

const webpack = require('webpack');
module.exports = {
  plugins: [
    new webpack.IgnorePlugin({ resourceRegExp: /^/u, contextRegExp: /log4js/u })
  ],
};
或:

const webpack = require('webpack');
module.exports = {
  plugins: [
    new webpack.IgnorePlugin({ resourceRegExp: /^/u, contextRegExp: /log4js/u })
  ],
};
const webpack = require('webpack');
module.exports = {
  plugins: [
    new webpack.IgnorePlugin({ resourceRegExp: /^(hipchat-client|loggly|mailgun-js|slack-node|nodemailer)$/u })
  ],
};