我很难找到足够的 Webpack 文档和示例来针对我的情况制定理想的开发工作流程。以下是使工作流程变得理想的所有功能:
观看,最好是通过 Gulp,使用高效的缓存。 (不要认为我需要热模块更换并怀疑它可能不适合我的开发环境。)
一个。在监视期间不解析和重新编译(因此重新编译更快),
不接收 sourcemap(因此浏览器开发工具响应速度更快),并且
写入不同的 vendor.js 包,浏览器可以将其与应用包分开缓存。
应用模块是
一个。明确所有依赖项(即 import React from 'react'; 即使 React 实际上是全局公开的或通过 #2 的东西),
是在观看期间重新编译,并且
确实收到源 map 。
我在文档或示例中阅读的大部分内容似乎都没有触及这个工作流程。
虽然我确实在文档中看到了如何创建特定于 vendor 的 bundle (转载于此处:Simple solution to share modules loaded via NPM across multiple Browserify or Webpack bundles),但提供的简单示例并未解决 2a 和 2b。
我在文档中没有看到任何方法可以为不同的 block 指定不同的编译配置(sourcemaps 等),或者创建完全独立的 Webpack 包和可以相互引用的单独的配置文件,除非通过全局化所有 vendor 库并将它们用作外部(?),这并不理想......
此外,我很好奇 Gulp 用户是使用 gulp-webpack 还是像 http://webpack.github.io/docs/usage-with-gulp.html 中提供的那样的设置. (我不确定 webpack-dev-server 是否适合我的开发环境,所以如果可能的话我想坚持使用 gulp-watch。)
我是否遗漏了其他 Webpack 用户知道的信息?执行此操作的最佳方法是什么?
或 Webpack 是否可能不是完成这项工作的正确工具?
最佳答案
Watching, ideally through Gulp, with efficient caching. (Don't think I need hot module replacement and suspect it might not fit into my dev environment well.)
你并不真的需要 Gulp,但你可以将它的 Node API 与 Gulp 一起使用(我正在这样做)。
Vendor modules (right now I have only npm packages, not all of them exposing UMD globals in their main file, if it came down to that) that are
a. not parsed & re-compiled during watch (so recompilation is faster),
我不认为未更改的文件会在监视期间被解析或重新编译。
b. do not receive a sourcemap (so browser devtools are faster to respond), and
不知道这个怎么做。我认为 source maps 要么全进要么全出。但是您可以使用 devtool: 'eval',它比源映射快得多。
c. write to a distinct vendor.js bundle that browsers can cache separately from app bundles.
我认为您正在寻找 split-by-name-webpack-plugin .
App modules that are
a. explicit about all dependencies (i.e. import React from 'react'; even if React is actually globally exposed or something via #2),
这会起作用。要要求 全局公开的库,请使用 externals config option .
b. are re-compiled during watch, and
发生变化的内容将被重新编译(如果您使用 webpack-dev-server)。
这并不能回答您的所有问题,但我希望它足以弄清楚它是否适合您。我不认为“不监视库”是一个大问题,就像你说的那样(重建缓存模块的性能损失很小),如果你放弃 sourcemaps 并使用 devtool: 'eval' ,我会说它真的很快。最后,there's a new watching solution in the works for Webpack所以你可能想试一试。它应该有更好的性能。
关于javascript - Webpack 工作流程有效地拆分 vendor 和应用程序代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27592559/
我在从html页面生成PDF时遇到问题。我正在使用PDFkit。在安装它的过程中,我注意到我需要wkhtmltopdf。所以我也安装了它。我做了PDFkit的文档所说的一切......现在我在尝试加载PDF时遇到了这个错误。这里是错误:commandfailed:"/usr/local/bin/wkhtmltopdf""--margin-right""0.75in""--page-size""Letter""--margin-top""0.75in""--margin-bottom""0.75in""--encoding""UTF-8""--margin-left""0.75in""-
我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t
如何在buildr项目中使用Ruby?我在很多不同的项目中使用过Ruby、JRuby、Java和Clojure。我目前正在使用我的标准Ruby开发一个模拟应用程序,我想尝试使用Clojure后端(我确实喜欢功能代码)以及JRubygui和测试套件。我还可以看到在未来的不同项目中使用Scala作为后端。我想我要为我的项目尝试一下buildr(http://buildr.apache.org/),但我注意到buildr似乎没有设置为在项目中使用JRuby代码本身!这看起来有点傻,因为该工具旨在统一通用的JVM语言并且是在ruby中构建的。除了将输出的jar包含在一个独特的、仅限ruby
在rails源中:https://github.com/rails/rails/blob/master/activesupport/lib/active_support/lazy_load_hooks.rb可以看到以下内容@load_hooks=Hash.new{|h,k|h[k]=[]}在IRB中,它只是初始化一个空哈希。和做有什么区别@load_hooks=Hash.new 最佳答案 查看rubydocumentationforHashnew→new_hashclicktotogglesourcenew(obj)→new_has
我花了三天的时间用头撞墙,试图弄清楚为什么简单的“rake”不能通过我的规范文件。如果您遇到这种情况:任何文件夹路径中都不要有空格!。严重地。事实上,从现在开始,您命名的任何内容都没有空格。这是我的控制台输出:(在/Users/*****/Desktop/LearningRuby/learn_ruby)$rake/Users/*******/Desktop/LearningRuby/learn_ruby/00_hello/hello_spec.rb:116:in`require':cannotloadsuchfile--hello(LoadError) 最佳
我正在为一个项目制作一个简单的shell,我希望像在Bash中一样解析参数字符串。foobar"helloworld"fooz应该变成:["foo","bar","helloworld","fooz"]等等。到目前为止,我一直在使用CSV::parse_line,将列分隔符设置为""和.compact输出。问题是我现在必须选择是要支持单引号还是双引号。CSV不支持超过一个分隔符。Python有一个名为shlex的模块:>>>shlex.split("Test'helloworld'foo")['Test','helloworld','foo']>>>shlex.split('Test"
关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭8年前。Improvethisquestion在首页我有:汽车:VolvoSaabMercedesAudistatic_pages_spec.rb中的测试代码:it"shouldhavetherightselect"dovisithome_pathit{shouldhave_select('cars',:options=>['volvo','saab','mercedes','audi'])}end响应是rspec./spec/request
在Rails4.0.2中,我使用s3_direct_upload和aws-sdkgems直接为s3存储桶上传文件。在开发环境中它工作正常,但在生产环境中它会抛出如下错误,ActionView::Template::Error(noimplicitconversionofnilintoString)在View中,create_cv_url,:id=>"s3_uploader",:key=>"cv_uploads/{unique_id}/${filename}",:key_starts_with=>"cv_uploads/",:callback_param=>"cv[direct_uplo
这是一道面试题,我没有答对,但还是很好奇怎么解。你有N个人的大家庭,分别是1,2,3,...,N岁。你想给你的大家庭拍张照片。所有的家庭成员都排成一排。“我是家里的friend,建议家庭成员安排如下:”1岁的家庭成员坐在这一排的最左边。每两个坐在一起的家庭成员的年龄相差不得超过2岁。输入:整数N,1≤N≤55。输出:摄影师可以拍摄的照片数量。示例->输入:4,输出:4符合条件的数组:[1,2,3,4][1,2,4,3][1,3,2,4][1,3,4,2]另一个例子:输入:5输出:6符合条件的数组:[1,2,3,4,5][1,2,3,5,4][1,2,4,3,5][1,2,4,5,3][
我的主要目标是能够完全理解我正在使用的库/gem。我尝试在Github上从头到尾阅读源代码,但这真的很难。我认为更有趣、更温和的踏脚石就是在使用时阅读每个库/gem方法的源代码。例如,我想知道RubyonRails中的redirect_to方法是如何工作的:如何查找redirect_to方法的源代码?我知道在pry中我可以执行类似show-methodmethod的操作,但我如何才能对Rails框架中的方法执行此操作?您对我如何更好地理解Gem及其API有什么建议吗?仅仅阅读源代码似乎真的很难,尤其是对于框架。谢谢! 最佳答案 Ru