前端:“从搭建环境到放弃”

2017-02-21 15:34:52 +08:00
 Majirefy

最近想学学前端。

简单来说,大概是被 Java 、 C#这种“开箱即用”从写到运行一条龙打包好而且有很好的包管理器之类的语言惯坏了、惯懒了、惯笨了。在写 JavaScript 的时候,莫名其妙的“浑身难受”。

语法级别的问题并不重要,但正如之前看到的 V2EX 里面转载的翻译文章中一样,在 Java 、 C#中做一个小 demo 的工程,自己已经早已忘记如何手工搭建一套舒服的开发环境了。 JB 公司的 IDEA 一装上,世界就此美好了。

回到 JavaScript 这边,或者说前端,什么 Babel 、 Webpack 、 Gulp 、 Grunt ……诸如此类的工具虽然应该极大“ boost ”了前端开发速度,但是对于初学者来说,更多是乱花渐欲迷人眼吧。

作为每天起床都高呼“微软大法好”的 Java 开发者(才怪),从数亿年前单细胞生物就遗传下来的趋 hao 利 yi 避 wu 害 lao 的特性让自己在对 JavaScript 浅尝了之后,逐渐想滚到 TypeScript 上面来,毕竟其很多特性还是让人 excited 。况且之前也用 Ionic 2 写过一点点小程序自娱自乐过。

试过之后才发现, Ionic 是前端界里面的好东西啊。能够完整地提供一套简单的开发流程和环境,基本上用 Visual Studio Code 安装一个 TSLint 就能愉快地玩耍了。对于这种方便,自己甚至认为理所当然了。

而当离开了 Ionic 之后,才发现自己真正面对了什么。 Ionic 隐藏了太多太多太多的“过程”,甚至可以说前端人员必须深入掌握了解熟练使用的过程。譬如 Webpack 之类的。

譬如最近想做一个 HTML5 游戏。 Google 了一下,用户数量比较多的开源 HTML5 游戏引擎主要有 pixi.js 和 Phaser ( Phaser 2 的渲染也用的 Pixi 2 )。

想到自己最爱的 RPG Maker 系列也用了 PIXI 的 v4 版本,觉得可以先用 PIXI 在 TypeScript 下练练手,然后再用 Phaser 做做玩。

不过这就遇到了问题。

PIXI 本身没有 TypeScript 的定义文件,社区的虽然也有,但是与 npm 上面的版本却不一致……看样子 npm 上面的那个也没人管。虽然可以自己手动下载相关的文件,但是为什么没有一个命令或者一堆命令来完成更新呢? NPM 基本完成了这些,但是譬如 TypeScript 的定义库,有些就很落后于相关工具的更新了。这恐怕也是 TypeScript 的一个大问题吧,缺乏更好的定义库的管理。这个和 Java 、 C#差别还是很大的。

Phaser 则原生就支持 TypeScript ,不过自己通过 npm 安装了之后, TSLint 却找不到相关的类……也无法 import 进来。而在网上一些 Phaser 的工程模板中,却不存在这种问题……

同样的 d.ts 文件, tsconfig.js 设置也没差别,然而就是不能……

同时也发现,大部分的教程在一开始的时候都不知道是有意还是无意直接跳过了搭建开发环境这么一个章节,直接说用喜欢的文本编辑器就好……这对于 Java 、 C#这种拥有非常棒 IDE 的语言来说自然不是问题,但是对于前端开发开说,则应该着重讲一讲……

譬如现在自己还不懂 ESLint 怎么用,怎么让 ESLint 查找我在 HTML 中引入的 JS 文件中的 class 、 function 之类的东西……

大家能不能提供一个快速入门,或者说搭建开发环境的方法?

8035 次点击
所在节点    问与答
71 条回复
Majirefy
2017-02-22 08:10:30 +08:00
@Quaintjade 也对,看来要买个 WEBSTORM 了
Ahri
2017-02-22 08:45:24 +08:00
楼主需要全家桶,比如 Meteor 。
XueRainey
2017-02-22 09:08:15 +08:00
Java 、 C#这种“开箱即用”,楼主你是怎么做到的。为什么感觉 Java 和 C#才是从搭建环境到放弃
Majirefy
2017-02-22 09:08:16 +08:00
@Ahri 全家桶套餐隐藏了太多细节。一开始还天真的以为, JavaScript 开发竟然也能和 C#一样开箱即用了……
Majirefy
2017-02-22 09:10:03 +08:00
@XueRainey 还是看公司具体的项目吧……我毕业入职的前三天就在搭开发环境,又一次关机后再开机就跑步起来了,吓得我从来不敢关机了……
Xrong
2017-02-22 09:24:10 +08:00
说真的,很多语言的搭环境都是痛点。。。当然也有可能是自身水平问题
darksc
2017-02-22 09:33:25 +08:00
啊哈哈哈,逗啊。啊哈哈。
Majirefy
2017-02-22 09:43:46 +08:00
@Xrong 看到不是我一个人卡在搭环境的地方,我就放心了……
fulvaz
2017-02-22 10:03:23 +08:00
@sox 我觉得, 你要说说比 vue-cli 好在哪
shunia
2017-02-22 10:07:04 +08:00
vscode 天然支持 js 之间的 auto complete 啊.
跟 html 毛关系没有.
bk201
2017-02-22 10:23:02 +08:00
po 主深陷工具流的漩涡。
Majirefy
2017-02-22 10:33:32 +08:00
@shunia 我怎么没有感觉出来……譬如 PIXI 还是提示未定义……


@bk201 被水淹没不知所措
sighforever
2017-02-22 10:43:04 +08:00
其实,你只需要一个 helloworld.html 文件就好了
shunia
2017-02-22 11:31:46 +08:00
@Majirefy 哎...算我那么说不准确好了,其实也挺简单的. vs code 在 javascript 语境下,非 node.js 上的 intellisence 基本都依赖于.d.ts 文件. 查一下`typings`的用法,用`typings`下载一个 pixi.js 的定义文件就好了.
zwhu
2017-02-22 11:37:52 +08:00
您能用 java6 写 java8 的特性?

你想用 java6 写 java8 的特性怎么做?

同理,你只想写 ES6 ,那你就别兼容低版本浏览器啊,纠结什么?
Majirefy
2017-02-22 11:49:32 +08:00
@shunia 是的,主要是这样下载的和官网的版本不同步
Ahri
2017-02-22 11:56:53 +08:00
楼主是来版聊的。。。
sox
2017-02-22 12:05:02 +08:00
@fulvaz readme 不是写了吗
Rice
2017-02-22 13:57:00 +08:00
累,前端搭环境就是累!
特别是用 windows ,那就是更累。
yunji3344
2017-02-22 13:59:45 +08:00
记事本加 chrome 的只能路过了

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

https://tanronggui.xyz/t/342073

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

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

© 2021 V2EX