Javascript 网页包需要目录中的每个文件
这是我的文件结构Javascript 网页包需要目录中的每个文件,javascript,webpack,Javascript,Webpack,这是我的文件结构 -main.js -SomeDir -fileA.js -fileB.js 如果我想加载someDir中的每个文件(在main.js内部),而不指定文件名,我该怎么办 类似于:require(./someDir/*.js)?解决方案: 额外: 正则表达式匹配js但忽略test.js /^(?。*test.js)((.\.(js\.*)[^.]*$)/igm)一种方法是在SomeDir位置和该文件中创建index.js文件: var req = require.co
-main.js
-SomeDir
-fileA.js
-fileB.js
如果我想加载someDir
中的每个文件(在main.js
内部),而不指定文件名,我该怎么办
类似于:require(./someDir/*.js)
?解决方案:
额外:
正则表达式匹配js
但忽略test.js
/^(?。*test.js)((.\.(js\.*)[^.]*$)/igm)
一种方法是在SomeDir位置和该文件中创建index.js文件:
var req = require.context('./', true, /\.js$/);
req([]);
然后在main.js中:
require('./SomeDir');
或
甚至
import something from "./SomeDir";
是的,这是可能的,甚至在文件夹层次结构中也是递归的 以下是一个示例:
var context = require.context('./', true, /\.(html)$/);
var files={};
context.keys().forEach((filename)=>{
console.log(filename);
files[filename] = context(filename);
});
console.log(files); //you have file contents in the 'files' object, with filenames as keys
这里还有一个实时演示(打开devtools查看生成的对象)
在您的情况下,第一行是
var context = require.context('./SomeDir', false, /\.js$/);
参考资料:我使用这种方法时出错,有什么建议吗?谢谢@NickMcCurdy不是反过来的吗?Webpack 1和Webpack 2,但没有Webpack它就无法工作。。。或者我遗漏了什么?对不起,我完全错了,这是我不知道的网页语法。删除我的评论。ES6版本对此有何要求?有人知道使用此方法需要多个目录吗?
req([])
和像接受的答案一样调用每个键上的req
有什么区别吗?未捕获错误:找不到模块“”。
在req([])
行中,为什么不起作用?@JianWeihang好吧,这已经是3年前的事了,API改变了。。如果我没记错的话,它和Webpack1和Webpack2一起工作。只是提醒一下,那些链接已经过时了
var context = require.context('./', true, /\.(html)$/);
var files={};
context.keys().forEach((filename)=>{
console.log(filename);
files[filename] = context(filename);
});
console.log(files); //you have file contents in the 'files' object, with filenames as keys
var context = require.context('./SomeDir', false, /\.js$/);