yon*_*nmn 30 javascript webpack
这是我的文件结构
-main.js
-SomeDir
-fileA.js
-fileB.js
Run Code Online (Sandbox Code Playgroud)
如果我想main.js在someDir不指定文件名的情况下 加载(内部)每个文件,我该怎么办?
类似的东西:require(./someDir/*.js)?
yon*_*nmn 41
var req = require.context("../someDir", true, /^(.*\.(js$))[^.]*$/igm);
req.keys().forEach(function(key){
req(key);
});
// or just: req.keys().forEach(req)
Run Code Online (Sandbox Code Playgroud)
正则表达式匹配js但忽略test.js
/^(?!.*test.js)((.*\.(js\.*))[^.]*$)/igm)
Tud*_*soi 10
是的,甚至可以在文件夹层次结构中递归
这是一个示例:
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
Run Code Online (Sandbox Code Playgroud)
这里有一个现场演示(打开devtools来查看生成的对象)
http://www.webpackbin.com/Vy6AwkWrz
在你的情况下,第一行将是
var context = require.context('./SomeDir', false, /\.js$/);
Run Code Online (Sandbox Code Playgroud)
参考:https://webpack.github.io/docs/context.html#require-context
一种方法是在 SomeDir 位置和该文件中创建一个 index.js 文件:
var req = require.context('./', true, /\.js$/);
req([]);
Run Code Online (Sandbox Code Playgroud)
然后在 main.js 中:
require('./SomeDir');
Run Code Online (Sandbox Code Playgroud)
或者
require('./SomeDir/index.js');
Run Code Online (Sandbox Code Playgroud)
甚至
import something from "./SomeDir";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32379 次 |
| 最近记录: |