相当简单的配置:
item.delete()
运行webpack错误并尝试要求我在任何地方都不使用或“需要”的图像和其他文件。
当我运行module.exports = {
entry: './index',
resolve: {
alias: aliases,
extensions: ['', '.js']
},
output: {
path: __dirname,
filename: 'output.js'
}
};
来查看dep树时,我发现了一些奇怪的表达式
webpack --profile --json
看起来在libs文件夹中附加了一个表达式 37 "id": 62,
36 "identifier": "/Users/pyramation/web/assets/js/libs/jsfileImNotRequiring.js",
35 "name": "./assets/js/libs/jsfileImNotRequiring.js",
34 "index": 62,
33 "index2": 53,
32 "size": 11225,
31 "cacheable": true,
30 "built": true,
29 "optional": true,
28 "prefetched": false,
27 "chunks": [
26 0
25 ],
24 "assets": [],
23 "issuer": "/Users/pyramation/web/assets/js/libs /^\\.\\/.*$/",
22 "profile": {
21 "factory": 22,
20 "building": 69
19 },
18 "failed": false,
17 "errors": 0,
16 "warnings": 0,
15 "reasons": [
14 {
13 "moduleId": 61,
12 "moduleIdentifier": "/Users/pyramation/web/assets/js/libs /^\\.\\/.*$/",
11 "module": "./assets/js/libs ^\\.\\/.*$",
10 "moduleName": "./assets/js/libs ^\\.\\/.*$",
9 "type": "context element",
8 "userRequest": "./jsfileImNotRequiring.js"
7 },
6 { 5 "moduleId": 61,
4 "moduleIdentifier": "/Users/pyramation/web/assets/js/libs /^\\.\\/.*$/",
3 "module": "./assets/js/libs ^\\.\\/.*$",
2 "moduleName": "./assets/js/libs ^\\.\\/.*$",
1 "type": "context element",
0 "userRequest": "./jsfileImNotRequiring"
1 }
2 ],
,我没有明确表示这样或类似的东西,所以不确定它来自何处。
任何关于此的亮点都将受到赞赏。
提前致谢!
答案 0 :(得分:1)
Webpack开始跟踪您的条目文件中的依赖项。当它向外追溯到您的依赖树时,如果webpack遇到动态需求,它会自动创建一个称为上下文的东西:
基本上,假设您使用路径,webpack不知道您将动态需要哪个子目录文件,并创建上下文。上下文会占用该子目录中的所有文件,因为它不知道您在运行时实际需要哪些文件。
如果您知道您的动态需求仍会解决,例如从别名中,您可以使用以下内容关闭自动创建上下文:
module.exports = {
entry: './index',
resolve: {
alias: aliases,
extensions: ['', '.js']
},
module: {
unknownContextRegExp: /$^/,
unknownContextCritical: false,
exprContextRegExp: /$^/,
exprContextCritical: false
},
output: {
path: __dirname,
filename: 'output.js'
}
};
可能有一种方法可以限制在自动上下文创建过程中被吸收的子文件,但我不确定:http://webpack.github.io/docs/configuration.html#automatically-created-contexts-defaults-module-xxxcontextxxx
答案 1 :(得分:0)
经过多次调试后,它是pusher