Mica

Results 553 comments of Mica

@simongfxu > 如果我有10个页面,每个对应的业务脚本压缩后只有1~2KB,那这种按需加载意义也不大。 在这种场景下,当然就不需要按需加载了,但是就如你推荐的那篇文章所说的: > 相当多的站点会将所有的JavaScript合并为一个文件,这也是最简单粗暴有效的方案。但是对于大型的单页系统而言,所有JavaScript合并后生成的文件会非常之巨大,其体积在浏览器单线程的下载模式下已经成为系统的性能瓶颈。 你推荐的这篇文章真的很好,它其实就是在_全部合并_或_全部按需加载_之间寻找一个平衡点!

@mrbenlearnjs 如果你是想知道怎么用 nodejs 搭建一个 web 服务器,那看看它内置的 [HTTP 模块](https://nodejs.org/api/http.html)就知道了,不过大部分人都使用 [Express](https://github.com/strongloop/express) 来完成这个功能。 如果你是想在 chrome-app 里面调用 nodejs 命令行来修改用户的 hosts 文件,那么就我所知,这是做不到的(即使做得到,这也需要用户先把你的 nodejs 程序下载到本地)。你应该尝试使用 [FileSystem API](https://crxdoc-zh.appspot.com/apps/fileSystem)。

@mrbenlearnjs 以我的 [书虫](https://github.com/lmk123/crx-crawler-for-crxdoc) 项目为例,其中 Chrome 扩展属于客户端,而 nodejs (或者说是用 nodejs 搭建起来的 web 服务器)是服务端,它们两个只是放在了同一个文件夹里,实际上是两个不同的执行环境,通过 HTTP 协议(或者说 AJAX) 交换数据。 当你把 nodejs 程序下载到自己电脑后,你自己的电脑就成了“服务端”,所以你可以用 nodejs 改你自己电脑上的文件啥的;但是对于使用你的 Chrome App 的用户来说,总不可能在商店里下载了你的 Chrome App 之后,你还让他去把你的 nodejs 程序也下载并安装(还得运行)到他的电脑上去吧?

@simongfxu 好的,年后我就整一个demo出来- -

@simongfxu 我在[这个项目](https://github.com/lmk123/app-another-one)里用了 requirejs + [gulp-rev-all](https://github.com/smysnk/gulp-rev-all),[gh-pages 分支里](https://github.com/lmk123/app-another-one/tree/gh-pages/www)就是加过 md5 之后的文件。你看看 [gulpfile.js](https://github.com/lmk123/app-another-one/blob/master/gulpfile.js) 就大致了解该怎么用了。希望还不算迟。- -

@hellopao 你看到你这篇文章第一条(或者说唯一的那条)评论没有?那就是我留下的 :) 我很早就看过了,只是我个人不太喜欢修改第三方脚本的源码,所以没有采用 :)

@Hanruis 是有风险的,好在 Webpack 及时出现,所以我已经弃用 gulp-rev-all 了。

Webpack 既支持按需加载,又支持根据内容将文件重命名为 hash,不需要有思路,简单的配置一下就可以了: [Code Splitting(按需加载)](http://webpack.github.io/docs/code-splitting.html) [Long-term Caching(hash 文件名)](http://webpack.github.io/docs/long-term-caching.html)

@simongfxu 1. 大部分错误都不是由语法错误引起的,这里只是做一个示例 2. 我刚才重新在 babel.io 里试了一下([结果](https://babeljs.io/repl/#?experimental=false&evaluate=false&loose=false&spec=false&code=const%20t%20%3D%20%7B%0D%0A%20%20name%3A'mk'%2C%0D%0A%20%20yes%28%29%20%7B%20console.log%28this.name%29%3B%20%7D%2C%0D%0A%20%20no%3A%28%29%20%3D%3E%20%20console.log%28%20this.name%20%29%0D%0A%7D%3B%0D%0A%0D%0At.yes%28%29%3B%20%2F%2F%20%E6%89%93%E5%8D%B0%E5%87%BA%20mk%0D%0At.no%28%29%3B%20%2F%2F%20%E6%8A%A5%E9%94%99)),babel 会把 `no()` 方法中的 `this` 替换成 `undefined`。奇怪的是昨天测试的时候它没有替换 `this`。已在文中更正 :)

@cssmagic 看了你的博客我也受益匪浅 :smile: