大型单页,一后端大牛让我从webpack转RequireJS

#1

大型单页,一后端大牛让我从webpack转RequireJS,你们怎么看?

目前有50+页面,基于webpack,使用require.ensure按需加载。
目前他们不能接受的是需要整体构建……
希望像RequireJS那样修改文件即可查看效果……
大家有什么建议?

  • 使用webpack方式时,如果依赖echarts,则只需要配置依赖echarts即可;但是RequireJS方式必须要主动配置echarts的依赖zrender。
  • 项目基于ES2015+, JSX,因此必然必须经过webpack之类编译。
  • 基于RequireJS时,webpack需要使用 externals 排除模块。
  • 所有UI组件独立为单独UI工程,模块使用时按文件路径按需使用,这部分与RequireJS兼容比较困难。

@perrywky @hbrls @lobos @ReactNative.cn 大神们麻烦给点意见 :smile:
@jiyinyiyong 请教下简聊是如何实现单页的?

#2

那你自己怎么看呢?为什么不试着研究下区别。

#3

@jerryshew 大牛给个意见吧

#4

居然被当作大神,心里有点小兴奋呐

ps requirejs 这种上古时期的东西,跳新坑才是前端的乐趣啊,而且你这个描述看不出来和 requirejs 有什么关系

#5

用了 angular 或者 react 之类的前端框架了?新的项目?目标用户?为什么他们会去关心是怎么构建的?他们要修改前端的代码?

#6

@Hanai 基于react,新项目,后台管理型产品。 他们是领导咯

#7

使用 Webpack 需要启动以后后端的服务器才能运行, 而 RequireJS 不需要.
对于前端开发来说, 单页面复杂就需要更强大的工具, 即便 Webpack 启动跟 Java 一样慢也需要忍
对于后端来说, 启动一个自己搞不定的 Webpack, 不仅麻烦, 而且跳到了自己技术栈以外
所以问题重点是, 方案基本上会导致某一方利益受损, 这个损失给谁承担?

这种情况我也没有办法. 我当时也是吵了一架然后才用上来的,
然而跟我吵的人后来其实和打包都不相干… 纯粹是对新技术的排斥. 我毫无感想
我建议楼主先做小的让步, 至少把 Webpack 配置调教好, 对方只要用一个命令就能搞定
如果的调教完还是不能达成一致, 只能看相互争论的结果了

3 Likes
#8

@jiyinyiyong 我也走上了这条不归路,现在是前后端完全分离,后端不写任何一点前端代码,但是后端架构师及领导有决策权。我以前搭建的webpack基于npm分模块管理依赖的方式,现在如果基于requirejs作为入口,webpack的分包和requirejs的动态加载是否能共存?

另外我想说,基于webpack管理css、图片、amd…等各种资源,然后用按需编译实现关心的模块才编译,简直简单到令人发指,但是可惜前端没有地位,我从java转前端一年,前端实在是坑大,后续可能还是专心学好后端技术先。

#9

Webpack 有提供一个 AMD 语法支持, 然而按照我当时切换的经验, 这套语法支持存在问题, 需要自己再验证一次.
共存的可能性比较小.

地位的事情已经和技术无关了, 说真的在讨论技术选择的时候最终诉诸个人地位才能解决, 实在有点难受.

#10

我先试试两者热加载共存。不管在哪,总有妥协的时候。

#11

为什么我觉得你们都没有说到点子上 ···

webpack是一个自带loader的前端构建工具,
而requireJS只是一个loader,

题主所说的整体构建,是任何一个前端构建工具都会做的,因为要分析依赖,前端构建的目的是,优化,打包,加CDN,加MD5版本号等等,webpack为了避免每次改动都全部构建一遍,特地加了缓存和热加载

如果没错的话你现有项目应该全是按照CMD规范写的,你要牵去requirejs,需要全部改成AMD规范

完全没有必要没有必要没有必要!

#12

我们的重点是,后端领导有决策权!

1 Like
#13

决策权也不是说瞎做决策 ·· 要以理服人 ··

你现在的项目是用jsx写的,即使loader换成requirejs,还是需要整体构建

loader换成requirejs的理由根本就不成立

1 Like
#14

lz 想不想换工作?

1 Like
#15

@lococo 项目用ES6和JSX书写,必然需要编译为AMD模块才能为requirejs所用,因此导致的配置是巨量的。另外由于很多模块是直接按文件路径调用以实现webpack按需打包,这块与AMD兼容就比较棘手了。

#16

@hbrls 原来给我发邮件的是你啊

#17

确实… 哪些公司正在招 React 开发者的赶紧露个脸~

#18

webpack是比require领先两代的,中间还隔了个browserify。
领先处体现在require和browserify们只解决了js的问题,但js只是个胶水,实际项目中你还有css/img/iconfont等资源,它们也需要管理引用,甚至需要打版本做缓存,基于requireJS的话这些你都得自己找方案。而webpack一站式解决了所有资源的依赖问题。

让想上requireJS的直接针对这一点来PK就好了

#19

正在尝试 System.js方案:SystemJS + ES6(Babel) + React 参考systemjs-seed
这方案肯定能走通,但是必须抛弃webpack+npm的优势
不知道有没有 SystemJS + webpack + ES6 + React 的方案?

#20

React 开发者赶紧露个脸,坐标北京招人

@hbrls 来不? :joy: