Замените указанный код c в пользовательском модуле node.js - PullRequest
0 голосов
/ 05 апреля 2020

Допустим, у меня есть модуль с именем 'pink. js'. Внутри этого модуля находится следующий код:

var color = 'red+white'
module.exports = color

Теперь в другом файле, скажем, мы делаем следующее:

const pink = require('./pink')
console.log(pink) //Logs 'red+white'

Затем, скажем, мы хотели изменить значение color в розовом. js до 'red+blue' путем перекодирования файла, а затем повторного запроса.

const pink = require('./pink')
console.log(pink) //Logs 'red+white'

//Code to replace the value of color in pink.js to 'red+blue'

//Re-requiring:
const pink2 = require('./pink')
console.log(pink2) //Logs 'red+blue'

Как мне go сделать это?

И если это возможно, могу ли я сделать это с настоящими модулями, такими как require.js?

Пример того, как это можно использовать: исправление простых проблем в модулях локально с использованием только кода , Мэйби, чтобы автоматизировать процесс.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 05 апреля 2020

Ответ - нет.

Когда вам потребуется файл, он будет иметь то же значение, если вы не измените и не запустите приложение повторно. В общем, каждый модуль имеет свою изолированную область видимости. Если первый модуль возвращает строку и не предлагает метод для изменения этого значения, его значение только для чтения. Только повторное требование ничего не изменит.

Приветствия,

0 голосов
/ 05 апреля 2020

Примерно так:

// Main.js
var Color = (module.exports = {
  value: 'red+white',
  changeColor: (newColor) => (Color.color = newColor),
})


// AnotherFile.js
var color = require('./main')

color.changeColor('red+blue')

console.log(color.value)
...