汇总:完全忽略模块

Ale*_*ain 5 browser node.js typescript rollupjs

我正在尝试构建一个适用于浏览器和 Node.js 的库,但有一些细微的差别。例如,应该使用 Node.js 上的内置浏览器的XMLHttpRequest, &来完成请求request-promise。因此,我希望汇总完全忽略 的所有导入语句request-promise,因为根据环境(浏览器或节点)在我的库中完成检查以从一种行为切换到另一种行为。

我尝试了很多方法:

module.exports = {
    external: ['request-promise'],
}

// OR
const ignore = require( 'rollup-plugin-ignore' ); 
module.exports = {
    plugins: [
        ignore('request-promise'),
    ],
}

// OR
const hypothetical = require( 'rollup-plugin-hypothetical' ); 
module.exports = {
    hypothetical({ 
        files: { 
          './node_modules/request-promise/lib/rp.js': `export default null;` 
        }, 
        allowFallthrough: true, 
    }),
}
Run Code Online (Sandbox Code Playgroud)

没有任何效果......我总是以一个 require 语句结束,或者在我的输出中直接包含模块。

所以,是的,我正在为此苦苦挣扎,我正在祈祷一些帮助。我对模块系统或汇总本身不太满意,所以有人知道如何request-promise用任何东西替换模块null吗?

干杯!