webpack比它应该多得多

时间:2015-12-12 05:29:51

标签: javascript build webpack

相当简单的配置:

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 ], ,我没有明确表示这样或类似的东西,所以不确定它来自何处。

任何关于此的亮点都将受到赞赏。

提前致谢!

2 个答案:

答案 0 :(得分:1)

Webpack开始跟踪您的条目文件中的依赖项。当它向外追溯到您的依赖树时,如果webpack遇到动态需求,它会自动创建一个称为上下文的东西:

http://webpack.github.io/docs/configuration.html#automatically-created-contexts-defaults-module-xxxcontextxxx

基本上,假设您使用路径,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

https://github.com/DanielApt/webpack-pusher