Não se usa simplesmente peerDependencies.
peerDependencies done
direitolevemente.
Eu me diverti muito com as dependências de pares . Então, comecei a procurar para descobrir como posso realmente ter o mesmo comportamento sem a frustração das dependências de colegas …
Eu encontrei uma maneira bastante simples de conseguir isso usando o subpack / node-resolve . O truque é que com ele podemos resolver a partir do diretório de trabalho atual :
Exemplo com um plugin 6to5
var resolve = require('resolve');
var to5;
try {
to5 = require(resolve.sync('6to5', { basedir: process.cwd() }));
} catch (_) {
console.warn('Processing using inner 6to5. version : ' + to5.version);
to5 = require('6to5');
}
// Do stuff with 6to5 here...
Deste jeito :
- você pode ter 6to5 como uma dependência em seu projeto.
- você não precisa ter 6to5 como uma dependência ou devDependency em seu plugin.
Veja meu plugin douglasduteil / isparta Karma para gerar cobertura de código para ES6 usando o 6to5.
Daqui para frente
Pode ser uma boa ideia adicionar mais algumas coisas a isso, como verificar semver, mas isso será para outro post …