从 rxjs 添加诸如“fromPromise”之类的东西在 webpack 4 中不起作用

Adding things like `fromPromise` from rxjs doesn't work in webpack 4

我在我们的一个大项目中尝试了无数次升级到 webpack 4,但每次我这样做都会遇到多个错误,我将这些错误追溯到 rxjs。直到我阅读了这么多看起来相似的问题之后我才打开这个问题,但是 none 解决了我的问题,我仍然对为什么会发生这种情况感到困惑。

在某个地方,我这样做:

import { Observable } from 'rxjs/Observable';

// Use Observable.fromPromise()

vendor.ts 中,这是我用来导入东西的入口模块,我这样做:

import 'rxjs/add/observable/fromPromise';

请注意,这在 webpack 3 上工作得很好。只有在我更新到 webpack 4 后,我才会遇到问题。此外,如果我改为从 rxjs/Rx 导入,这个特定问题似乎已解决,这意味着它是与 fromPromise 未导入相关的问题。

在更新之前,我在 webpack 3 中有以下 webpack 配置:

new webpack.optimize.CommonsChunkPlugin({
  names: ['vendor', 'polyfills'],
}),

更新后我在 webpack 4 中有这个:

optimization: {
    splitChunks: {
        cacheGroups: {
            vendor: {
                test: /[\/]node_modules[\/]/,
                name: 'vendor',
                chunks: 'all',
            },
        },
    },
},

环境

在对 webpack 进行了大量修改之后,它现在似乎可以正常工作了。我不知道出了什么问题,也许这只是 webpack 4 中的一个更改。但重要的是如果您使用的是最新的 rxjs 包,请使用 from 而不是 fromPromise