Может кто-то объяснить насчет зависимостей в node_modules?

Здравствуйте. С node.js и с npm не сильно силен.

Во первых, пожалуйста посоветуйте, что можно почитать по npm?

Насчет вопроса. Вот установил например зависимости, установил пакет к примеру, и я вот хочу что-то в нем изменить, добавить своей функциональности к примеру, я этого сделать никак не могу?
  • Вопрос задан
  • 224 просмотра
Пригласить эксперта
Ответы на вопрос 3
fakey0u
@fakey0u
(javascript) => ['Node.js', 'React']
можно написать patch над модулем.

Каждый модуль в момент require('some-module') попадает в require.cache и далее данный модуль можно пропатчить.
Например:
// first.js
const add = (a,b) => a +b;
module.exports.add = add

// patched.js
const MODULENAME = './first';
const moduleToPatch = require(MODULENAME); // здесь мы кешировали нужный нам модуль

require.cache[require.resolve(MODULETOPATCH)].exports.add = (a,b) => {
 console.log('PATCHED ! ! ! ! ')
 return a + b;
}

// second.js
require('./patched');
const { add } = require('./first');

console.log(add(10, 20)) 
// PATCHED ! ! ! !
// 30


Естественно первым нужно подключать модуль для патча, чтобы он сделал первый require у себя
Ответ написан
k12th
@k12th
console.log(`You're pulling my leg, right?`);
Идете к автору пакета и говорите: так и так, мне нужно вот такое вот поведение, можно я сделаю PR? Если договариваетесь, как это должно выглядеть и работать, то делаете форк, вносите изменения, присылаете автору pull request.
Ответ написан
Комментировать
@emp1re
Вот установил например зависимости, установил пакет к примеру, и я вот хочу что-то в нем изменить, добавить своей функциональности к примеру, я этого сделать никак не могу?


Создаешь свой модуль/либку, все нужные зависимости подключаешь внтури него, делаешь обвертки над нужными тебе функциями и затем в приложении используешь свою реализацию. Не стоит копировать модули, сложно будет в супорте.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
20 нояб. 2024, в 15:06
8000 руб./за проект
20 нояб. 2024, в 15:02
5000 руб./за проект
20 нояб. 2024, в 14:56
80000 руб./за проект