Ao usar "npm install", os módulos são carregados e disponibilizados em todo o aplicativo, independentemente de serem "devDependencies" ou "dependencies". Soma desta idéia: tudo o que seu package.json define como uma dependência (qualquer tipo) é instalado em node_modules.
O objetivo da diferença entre dependências / devDependencies / optionalDependencies é o que os consumidores do seu código podem fazer com o w / npm para instalar esses recursos.
De acordo com a documentação: https://npmjs.org/doc/json.html ...
Se alguém planeja fazer o download e usar o seu módulo em seu programa, provavelmente não deseja ou precisa fazer o download e criar a estrutura de teste ou documentação externa que você usa.
Nesse caso, é melhor listar esses itens adicionais em um hash devDependencies.
Essas coisas serão instaladas sempre que o sinalizador de configuração --dev for definido. Esse sinalizador é definido automaticamente ao fazer o link do npm ou ao instalar o npm a partir da raiz de um pacote e pode ser gerenciado como qualquer outro parâmetro de configuração do npm. Veja config (1) para mais informações sobre o tópico.
No entanto, para resolver esta questão, se você deseja instalar SOMENTE as "dependências" usando o npm, o seguinte comando é:
npm install --production
Isso pode ser confirmado observando a confirmação do Git que adicionou esse filtro (junto com outros filtros [listados abaixo] para fornecer essa funcionalidade).
Filtros alternativos que podem ser usados pelo npm:
--save => updates dependencies entries in the {{{json}}} file
--force => force fetching remote entries if they exist on disk
--force-latest => force latest version on conflict
--production => do NOT install project devDependencies
--no-color => do not print colors
@dmarr tente usar o npm install --production