如何忽略其他文件或组件所需的node.js中的文件
以下可以忽略或执行导入文件的一些修改,例如在我的index.js中
require.extensions['.js'] = function(file) { console.log(file.id) return; };
不过,我真的不想忽略index.js中的这些文件,我想忽略在随后的文件/组件中导入的文件
require.extensions['.js'] = function(file) { console.log(file.id) return; }; require('babel-register') require('./components/Test.spec.js');
例如这将logging下面的内容并返回
/Users/me/myapp/node_modules/babel-register/lib/node.js /Users/me/myapp/tests/components/Test.spec.js
真的是我想要的是它忽略Test.spec.js
文件中的任何包含的特定types的文件
我知道在babel中指定忽略的选项,但是这只是忽略了他们被转发,所以不是真正的我想要的。 基本上我想要一个特定的文件types,例如.jsx
不被编译,或者我可以重写这个需求并返回另一个函数。
https://babeljs.io/docs/usage/require/
这黑客应该工作:
ignore = []; var original_require = require; require = function(file){ if(ignore.indexOf(file)!=-1) return original_require(file); };
只要在任何要求之前粘贴此代码。 现在你可以做到这一点:
文件a.js:
console.log('I\'m a'); ignore.push('./c'); require('./b');
文件b.js:
console.log('I\'m b'); require('./c');
文件c.js:
console.log('I\'m c');
结果将是:
I'm a I'm b