V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  pikay  ›  全部回复第 5 页 / 共 6 页
回复总数  105
1  2  3  4  5  6  
@Carseason 谢谢
@runze 😹我简历补上
@Cbdy 当前 drill.js 支持还是很好,而且 drill.js 可以扩展 ts 之类的文件的支持,就是写 runtime 我还得恶补好多编译知识,当前经济状况之类的做考量这方案性价比太低了😭,会优先考虑能填饱肚子的方案;
@Cbdy 但是有几种需求不能满足,比如 drill.js 的异步模块,如果 'data'模块需要一次 ajax 请求数据,按照 es module 就只能返回一个 Promise 对象,后续逻辑再做一层包裹,才能做这种需求,而且 esm 是同步开发的模式来思考;
drill 的模块还有 task 模块和 init 模块,虽然这两种是非必须但是开发还是很实用的,还有就是 web 前端开发里的 非模块文件(普通 js ), esm 没有把它思考进去; drill.js 就能当成默认文件插入;

还有一种未来一定会出现的一些模块类型,比如 点击按钮音效,按照 drill.js 的扩展开发模式,很容易就能做到如下:
let p = await load("xxx.mp3 -defer")
btn.on("click",e=>{
p.play()
})

不考虑做 esm 还有开发扩展上的考虑,现在 drill.js 开发扩展支持是很方便的,代码如下:

loaders.set("wasm", async (packData) => {
let data;
try {
// 请求数据
data = await fetch(packData.link);
} catch (e) {
packData.stat = 2;
return;
}
// 转换 arrayBuffer 格式
data = await data.arrayBuffer();

// 转换 wasm 模块
let module = await WebAssembly.compile(data);
const instance = new WebAssembly.Instance(module);

// 重置 getPack
packData.getPack = async () => {
return instance.exports;
}

// 设置完成
packData.stat = 3;
});

使用如下:
let xx = await load("xx.wasm")
xx(); // 这里直接用 xx 方法

drill.js 目前很容易就能开发扩展,esm 开发扩展会变得很麻烦,可能又要走预编译方案,还有得重写 map 映射,或者我还要在想想 esm 怎样开发扩展会更方便;
@Cbdy 你给的这些东西跟我说的不一样,只是限于当时的发展当时没法做,所以才到 grunt glup 后才 webpack ;现在浏览器已经发展的够好了,有能力抛弃预编译方案;我只是想探讨,假如非预编译方案已经和预编译方案一样了,有没有前途,没有的话我就不补文档了。
@AlphaTr 非常感谢,了解需求了,后续添加工具配套。💪
@meepo3927 看楼上贴了外链,我回复不能贴外链了;
@Cbdy requirejs 的前置依赖并不能灵活满足需求,所以我才会开发 drill.js ; backbone 和 jquery 做组件封装和数据绑定很繁琐,我才开发了 xhear
@wunonglin 我好像搞错问题了,还以为你说 drill 和 xhear 的问题。。。
如果是说 PageCreator 导出的项目的话,目前是做多场景页面的,像小米手机展示页那种,主要是可以将工作量丢个设计师,而且它们也更好调到想要的效果。。。
导出的 pageRunner 主要是依赖 .p_main 这个元素,还有它的依赖 js 文件;用 ng vue react 的 spa 页应该不适用场景展示的需求吧。。。如果非得要在里面展示可能要用 iframe 了。 orz
@wunonglin 😭第一次 V2EX 发帖非常感谢这么长和有用的回复;
1.如果你说的是 PageCreator 制作简单多场景页面,让设计师用这个工具做 80%,导出项目后前端开发在补全不能做的元素,例如视频表单或者不能用的单位元素,导出的项目是 MIT 协议的,可以在官网找项目地址,里面有文档教怎样做自定义元素;
2.Xhear 的组件管理可以用 drill.js 的异步包的模式管理,但是我也觉得不太方便;如果以后有人用,会做一个视图工具来清晰管理组件问题;可是目前要恰饭所以没时间做,因为只有我一个人用都很清晰。。。
3. drill.js 就是异步模块化库,使用方法跟模块化方案一样,就是返回的是 Promise,要用 await 来得到;
4.xhear 是元素数据,你可以$.xdata({obj...})生成你的数据,在修正 xdata 对象,通过 sync 双向数据绑定 xhear 的 element,文档没补齐详细还很难说明白给你;大概的意思是传过来的数据本身就带 tag 属性,tag 属性代表了实例类型,可以服务端调整数据传过来,也可以传过来后前端调整; Xhear 是基于 stanz 开发的(可以进我的 github 里面看 stanz 这个项目),你看看 stanz 的 test 说不定能知道怎么做。。。
5.如果是说 PageCreator 导出的 web 页面,直接在 index.html 里面加;如果是说 xhear + drill.js 的模式,看 drill.js 的文档,通过 load 函数载入;
6.我的 xhear 是就是定位他们三个的。。。drilljs 可以和它们三个搭配用;
@FEDT 其实也是要感谢 nodejs 和 babel 推动社区改进,在能支持 es7 的方案下就能完全实现前端模块化和工程数据化了。
@JohnChiu 你可以看看我开发出来的 PageCreator,是个应用软件来的。🤣
@Kilerd 没懂
@loading 😹我也被坑过,那对写后台的问我怎么加东西,都没前端模块化管理,人都调崩溃了。
@molvqingtai 😭被限制外链回复了,看看评论里的 PageCreator 算不算大型应用;
@JmmBite 😭被限制外链回复了,从评论里的 PageCreator 主页里,Q&A 有写两个底层的链接;
@fngtz 是啊,做出来了但是没人用,自己倒是用得很爽,但是没钱了要找工作了,所以问问再重新学了流行框架的基础上,能不能因为我干过的傻事加点工资;
@Chrisssss 是啊,所以我有点后悔是不是选错了写前端底层的路,是不是几年前就应该跟随大众不要挑战权威。
@hackyuan 我只是看不爽 webpack,就一个模块管理工具这么复杂;
@luob 通过模拟模块化方式管理,模块用 Promise 包装,这个 https://github.com/kirakiray/drill.js
1  2  3  4  5  6  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   840 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 13ms · UTC 20:54 · PVG 04:54 · LAX 13:54 · JFK 16:54
Developed with CodeLauncher
♥ Do have faith in what you're doing.