替换 node.js 自定义模块中的特定代码

假设我有一个名为“pink.js”的模块。该模块内部是以下代码:


var color = 'red+white'

module.exports = color

现在在另一个文件中,假设我们执行以下操作:


const pink = require('./pink')

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

然后假设我们想通过重新请求文件来更改colorpink.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'

我该怎么做呢?


如果可能的话,我可以对实际模块执行此操作require.js吗?


一个如何使用它的示例:仅使用代码在本地修补模块中的简单问题。梅比自动化这个过程。


翻翻过去那场雪
浏览 161回答 2
2回答

倚天杖

答案是不。一旦您需要一个文件,除非您修改并重新运行您的应用程序,否则它将具有相同的值。通常,每个模块都有自己的隔离范围。如果第一个模块返回一个字符串并且没有提供更改它的方法,则它只是一个只读值。只有重新要求不会改变任何事情。干杯,

拉风的咖菲猫

可能是这样的:// Main.jsvar Color = (module.exports = {  value: 'red+white',  changeColor: (newColor) => (Color.color = newColor),})// AnotherFile.jsvar color = require('./main')color.changeColor('red+blue')console.log(color.value)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript