Node.js babel rewire不替换fetch变量

Node.js babel rewire不替换fetch变量,node.js,module,require,babeljs,Node.js,Module,Require,Babeljs,我已经将我的问题与babel plugin rewire隔离到这几个文件中。我正在试图弄清楚为什么console.log(dep)仍然将fetch作为函数记录,而不是true,因为它应该被替换 B.法律改革委员会 副秘书长 使用.js package.json 好的,刚刚学到了重新布线不会改变模块范围(duh)的艰难方法 副秘书长 使用.js 日志: { "presets": [ "babel-preset-stage-3", [ "babel-preset-en

我已经将我的问题与
babel plugin rewire
隔离到这几个文件中。我正在试图弄清楚为什么
console.log(dep)
仍然将fetch作为函数记录,而不是
true
,因为它应该被替换

B.法律改革委员会

副秘书长

使用.js

package.json


好的,刚刚学到了
重新布线
不会改变模块范围(duh)的艰难方法

副秘书长

使用.js

日志:

{
  "presets": [
    "babel-preset-stage-3",
    [
      "babel-preset-env",
      {
        "targets": {
          "node": "4.0.0"
        }
      }
    ]
  ],
  "plugins": [
    "babel-plugin-rewire"
  ]
}
const fetch = require('isomorphic-fetch')

module.exports = {fetch}
const dep = require('./dep')

dep.__Rewire__('fetch', true)

console.log(dep)
{
  "scripts": {
    "start": "babel-node ./use.js"
  },
  "devDependencies": {
    "babel-cli": "^6.26.0",
    "babel-core": "^6.26.0",
    "babel-plugin-rewire": "^1.1.0",
    "babel-preset-env": "^1.6.1",
    "babel-preset-stage-3": "^6.24.1"
  },
  "dependencies": {
    "isomorphic-fetch": "^2.2.1"
  }
}
var Path = require('path');

var env = 'production';

console.log(env)

module.exports = function(name) {
  console.log(env)
  return Path.normalize(name)
}
var normalizer = require('./dep.js');

normalizer.__Rewire__('Path', {
  normalize: (name) => name
});

console.log(normalizer('/foo/bar//baz/asdf/quux/..'))

normalizer.__Rewire__('env', 'testing');

console.log(normalizer('/foo/bar//baz/asdf/quux/..'))

normalizer.__ResetDependency__('Path');

console.log(normalizer('/foo/bar//baz/asdf/quux/..'))
production
production
/foo/bar//baz/asdf/quux/..
testing
/foo/bar//baz/asdf/quux/..
testing
/foo/bar/baz/asdf