webpack和browserify的 --ignore 相当于什么?

3

我有一些代码,除非我“忽略”两个包,否则在浏览器中无法正常工作。使用browserify可以很好地完成这项任务:browserify files.js -i fs-extra -i request --standalone files > files.browserify.js,生成的代码可以正常工作。但是,如果我尝试使用webpack,则代码会抱怨缺少模块。

...
  plugins: [
      new webpack.IgnorePlugin(/fs-extra$/),
      new webpack.IgnorePlugin(/request$/),
      new webpack.IgnorePlugin(/fs$/)
  ],
...

test.webpack.js:7655 Uncaught Error: Cannot find module "request"
    at webpackMissingModule (test.webpack.js:7655)
    at Object.exports.byteLength (test.webpack.js:7655)
    at __webpack_require__ (test.webpack.js:20)
    at Object.<anonymous> (test.webpack.js:17012)
    at __webpack_require__ (test.webpack.js:20)
    at test.webpack.js:66
    at test.webpack.js:69

我怀疑webpack可能不像browserify一样创建"空存根": --ignore, -i 用一个空存根替换文件。文件可以是通配符。
我该怎么做来解决这个问题?
资源:

不确定,但可能要检查 https://webpack.github.io/docs/configuration.html#target ? - TryingToImprove
我点赞了,因为我遇到了类似的问题。但是我注意到错误信息提到了require未定义。这听起来像是另一个问题。 - Boldewyn
1
@Boldewyn 啊,错误信息错了,我已经更新了帖子,require 错误信息是在我尝试使用 target: 'node'target: 'web' 等进行实验时出现的,现在它指的是 Cannot find module "request" - 01AutoMonkey
1个回答

5
您需要的是null-loader,它返回一个空模块,与此相关的是IT技术。
module: {
    loaders: [
        {
            test: /^(fs-extra|fs|request)$/,
            loader: "null"
        },
        ...
]

安装方法:

$ npm i -D null-loader

2
在Webpack 2中:将loaders替换为rules,并使用null-loader代替null - Thomas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接