我已经开发了一个程序包,该程序包中有一个依赖关系react-select(我们将其称为A
程序包),其版本为2.x。
当我将react-select用作外部模块并使用Rollup打包时,然后在另一个项目中使用A,同时此项目的依赖项中有一个react-select(版本1.x)。
运行此项目时,A
包将在外部项目中引用react-select(版本1.x),而不是在其自己的node_module中引用react-select(版本2.x)。
如何制作A
包以引用其自身的react-select
这是我的 Rollup 配置:
import babel from 'rollup-plugin-babel';
import external from 'rollup-plugin-peer-deps-external';
import resolve from 'rollup-plugin-node-resolve';
import commonjs from 'rollup-plugin-commonjs';
import cleanup from 'rollup-plugin-cleanup';
export default {
external: ['react-select', 'react-value'],
input: 'src/index.js',
output: [
{
file: pkg.main,
format: 'cjs',
exports: 'named'
},
{
file: pkg.module,
format: 'es'
}
],
plugins: [
resolve({
extensions: ['.js', '.jsx', '.json'],
modulesOnly: true
}),
babel({
exclude: 'node_modules/**',
plugins: ['external-helpers']
}),
external(),
commonjs(),
cleanup()
]
};