我无法找到足够的Webpack文档和示例来为我的情况找出理想的开发工作流程。以下是使工作流程理想的所有功能:
最好通过Gulp观察高效的缓存。 (不要以为我需要更换模块,并怀疑它可能不适合我的开发环境。)
供应商模块(现在我只有npm软件包,并不是所有软件包都在主文件中公开UMD全局文件,如果它归结为那些)
一个。没有解析&在观察期间重新编译(因此重新编译更快),
湾不接收源图(因此浏览器devtools响应速度更快),
℃。写入一个独特的vendor.js
捆绑包,浏览器可以与应用捆绑包分开缓存。
的应用模块
一个。明确所有依赖关系(即import React from 'react';
,即使React实际上是全局公开的,也可以通过#2),
湾在观看期间重新编译,
℃。 执行接收源地图。
我在文档或示例中看到的大多数内容似乎都没有达到这个工作流程。
虽然我在文档中看到如何创建特定于供应商的软件包(在此处复制:Simple solution to share modules loaded via NPM across multiple Browserify or Webpack bundles),但提供的简单示例并未涉及2a和2b。
我没有在文档中看到为不同的块指定不同的编译配置(源图等)的任何方法,或者创建完全独立的Webpack包,其中包含可以相互引用的单独配置文件,除非通过全球化所有供应商库并将它们用作外部(?),这不是理想的......
此外,我很好奇Gulp用户是使用gulp-webpack
还是使用http://webpack.github.io/docs/usage-with-gulp.html中提供的设置。 (我不确定webpack-dev-server
如何适应我的开发环境,所以如果可能的话,我希望坚持gulp-watch
。)
我是否遗漏了其他Webpack用户所知道的内容?最好的方法是什么?
OR Webpack可能不适合这项工作吗?
答案 0 :(得分:9)
最好通过Gulp观看高效的缓存。 (不要以为我需要更换热模块,并怀疑它可能不适合我的开发环境。)
你真的不需要Gulp,但你可以使用它的Node API和Gulp(我这样做)。
供应商模块(现在我只有npm软件包,并不是所有软件包都在主文件中暴露UMD全局变量,如果归结为那些)
一个。没有解析&在观察期间重新编译(因此重新编译更快),
我不认为在观看期间会解析或重新编译未更改的文件。
湾不接收源图(因此浏览器devtools响应速度更快),
不知道如何做到这一点。我认为源地图要么全部存在,要么全部存在。但是你可以使用devtool: 'eval'
,它比源地图工作得快得多。
℃。写入一个独特的vendor.js包,浏览器可以从应用包中单独缓存。
我认为您正在寻找split-by-name-webpack-plugin。
的应用模块
一个。明确所有依赖关系(即从'反应'导入React;即使React实际上是全局暴露的,也可以通过#2),
这会奏效。要require
全局公开的库,请使用externals
config option。
湾在观看期间重新编译,
已更改的内容将被重新编译(如果您使用webpack-dev-server)。
这并没有回答你的所有问题,但我希望能够弄清楚这是否适合你。我不认为“不看图书馆”就像你说的那样是一个大问题(在重建缓存的模块上只有很少的惩罚),如果你放弃源图并使用devtool: 'eval'
,我说它真的很快。最后,there's a new watching solution in the works for Webpack所以你可能想要给它一个旋转。它应该有更好的性能。