假如我开发了套 web 前端框架,只需浏览器,不需要 nodejs webpack 就能构建大型应用,有没有什么办法把它推广出去?

2019 年 5 月 27 日
 pikay

还有问问真的开发出来了的话,出去找工作能挑战多少薪资?

6046 次点击
所在节点    前端开发
47 条回复
Cbdy
2019 年 5 月 28 日
@pikay 我看了一下你的 drill.js ,js 的 module 已经进标准了,建议你用标准。requirejs 是因为出来的比较早,那时还没有 esm。
```
export const m1 = {}
const m2 = await import('./m2.js')
```
pikay
2019 年 5 月 28 日
@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 怎样开发扩展会更方便;
pikay
2019 年 5 月 28 日
@Cbdy 当前 drill.js 支持还是很好,而且 drill.js 可以扩展 ts 之类的文件的支持,就是写 runtime 我还得恶补好多编译知识,当前经济状况之类的做考量这方案性价比太低了😭,会优先考虑能填饱肚子的方案;
runze
2019 年 5 月 28 日
感觉做的挺不错的,值得多要工资,但楼主的表达有问题。
不应该是“我开发了一套 web 框架,所以多要 XX 工资”,
而应该是“我业余时间自己开发了一个 XX,在这个过程中学会了 XX、YY 技能,有 XX 开发的经验”。
pikay
2019 年 5 月 28 日
@runze 😹我简历补上
molvqingtai
2019 年 5 月 28 日
看了一下 pageCreator,大佬啊
liyuanqiu
2019 年 6 月 1 日
你根本没理解 webpack 做了啥,先想想为什么要 webpack 吧。

即使你把 build 的运行环境弄到浏览器里,你还是绕不过 webpack,除非你自己再再造一个功能完全一样的轮子并维护起完善的生态。

把 build 环境弄到浏览器里,这个事情已经有人做了:
https://codesandbox.io/

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/568127

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX