Até entendo o problema que a ferramenta tenta resolver, mas na minha visão, ajuda a criar ainda mais problemas.
Imagina o seguinte cenário onde chega um dev novo na equipe que vai precisar instalar uma lib nova? a intuição dele leva a executar um npm install
, outro ponto de estranhesa será ver uma lib sendo importada de ./common/{lib_qualquer}
isso me causa estranhesa de ver e naturalmente leva a pessoa a importar corretamente com const lib = require('lib')
ou import lib from 'lib'
.
Acho nesses casos que o problema é mais sobre a arquitetura que é montada a linguagem em si do que onde deve ou não ser guardada a node_modules
, afinal, continua existinto em outro local com outro nome e acabou criando só mais complexidade.
Isso é só minha opinião e tentando trazer uma visão para uma discusão sadia de como isso afetaria no dia a dia de uma equipe de desenvolvimento e quais as consequências disso.
Podemos até argumentar "há mas é só criar um README para as pessoas novas que estão entrando no projeto" mas o ponto continua não sendo esse, o ponto é que uma ferramenta deve te trazer mais flexibilidade e facilidades no dia a dia se ela já nasce criando um problema, seria melhor repensar para uma solução mais adequada.
O problema que a ferramenta se propõe a resolver é a criação de múltiplos node_modules, sendo assim, poupando espaço na máquina, e a partir do momento que você roda common build, tudo é instalado localmente, e o packge.json editado, entao se alguem der npm install diretamente, irá funcionar, assim como common npm install, essa questão da lib ainda estou pensando como resolver, mas é so a primeira versão, e ainda não é estavel para produção, é uma concepção de uma ideia e espero contar com sua ajuda para evolui-la!
Acho que ao invés de common, vou criar um 'placeholder' na node_modules, assim a pessoa importa por padrão a lib, e na hora do build, isso é instalado na node_modules, de qualquer forma, agradeço o feedback
edit 1: o diretorio padrão de import agora é node_modules, entao, qualquer import sera feito como default e sem o peso adicional que isso trás para o projeto.
ou seja, com common ou não, vocÊ importara por padrão const uuid = require('uuid')
Bug: Adicionar a lib e a verão ao packge.json na instalação da mesma, para evitar que o usuario rode common build, sendo assim, criando uma compatibilidade com o comando npm padrão, sem a necessidade do do comando adicional, então poderá ser usado npm ou common npm para o mesmo projeto