繁体   English   中英

如何忽略另一个文件或组件所需的node.js中的文件

[英]How do I ignore files in node.js which are required by another file or component

以下内容可以忽略或执行对我的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');

例如,这会记录以下内容并返回

/Users/me/myapp/node_modules/babel-register/lib/node.js
/Users/me/myapp/tests/components/Test.spec.js

我真正想要的是它忽略Test.spec.js文件中特定类型的任何包含文件

我知道在babel中指定ignore的选项但是这只是忽略了它们被转换,所以不是我想要的。 基本上我想要一个特定的文件类型,例如.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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM