Java小白
作为一个Java开发,种种前端技术令我很是懵,自己所有的前端只有jQuery ,但不得不说 node 的出生带来了一系列的变动,而我并没有接触过。
个人学习整理的,有问题请指正
npm 个人暂时理解为 nodejs package manager,主要就是管理nodejs的包,强行理解的话可以说是类似Maven仓库吧
整体介绍
个人来说的话最感兴趣的是electron 吧(写文章时还没用会),这得感谢java我用不习惯的界面开发。但是我一次有一次的放弃了,因为对于这里面的东西我找不到头绪,一次次的失败,这次文档还是在angular培训的时候自己努力整理的。
首先,使用npm的前置条件的话,我觉的还是要了解一些es6的东西,我就是因为这个基础能力没更新懵逼的。es6 和 es5 存在一些从底层设计上存在的不同,我们要了解下这个思想,es6读完以后会有一种js的底层原来是这样设计的错觉,当然整个过程很枯燥
然后,我们要习惯下命令操作方式,这里的命令不是我们linux 远程处理问题的命令。开个玩笑来说的话,node是较新一点的技术,它对应的开发工具集成还是很薄弱的(angular官方文档使用的一个在线教学项目好像已经有angular自己集成的前兆了),所以我们只能用命令行来做了,就像黑窗窗和图形化界面的区别
最后,还是得说因为更新的比较快,所以里面的很多东西都要去更新,所以你需要一个好的网速加一个好的镜像,否则第一步的过程就难受到让人想放弃
好像高大上的前端项目
前端项目vue/angular/react,可能还有很多很多,整个人都很懵逼。个人理解,莫慌,哈哈哈哈… 开个玩笑
- 其实参考下java web最初的xml配置的ssh项目(springboot 用的自己都感觉世界清净了),之前的理念都是可配置化的(现在约定优于配置),里面有各种各样的配置文件,眼花缭乱我们不还是有入口么,所以放松心态慢慢来
- 前端项目路由好像只是个锚点切换(目前个人理解),这个锚点是说url连接#后面的部分,我们之前的做法大部分是用它来做页面定位(有问题请指正),它会把前端项目打包到一个页面去,然后在这个页面里面来加载不同的部分。不同的部分我之前知道的只有jquery 的 load 页面,实现局部页面替换,现在的话他们做了一个模板引擎,基于自定义标签的功能实现了模块化等一系列功能。
- 我们可以猜一猜各个文件的用途了,,
package.json
npm的配置文件angular.json
angular 配置文件 有了入口,我们还怕啥
好吧,上面的我也有点懵,大家当做一个意见参考即可。该说说高大上的开发脚手架了,名字叫 cli,所以我就去百度了一下,全名 command-line interface, what a fuck,人家说了就是命令行接口,说白了就是没有图形化界面给你用,大兄弟
安装及配置
个人也是新手,所以我是用的方式就是安装node,然后同时npm也就装好了。
这里主要说的是几个命令吧
- 初始化
npm init
- 安装
npm install [option] [packageName]
卸载npm uninstall [packageName]
好吧我的能力并不能让我说很多…
好像有好多各种各样的命令…
我是谁,我在那,这又是什么…
很多困惑,我就想用个npm,怎么还有各种其他命令… 莫慌,其实这个东西也是可以解释的。作为java开发,我们部署项目的时候最常用的就是java -jar {jarName}
来运行程序,那么java这个命令哪来的呢?so,环境变量,npm全局安装的包放在同一个目录,我们就可以用了不是,,应该是相似的原理喽
配置
提到配置,先要说的一点就是配置的命令npm config [get| list] [confName]
,这个大家来试着看文档吧,毕竟命令 应该都有 help的,linux里面用了很多
修改配置的话,本人是win10系统,所以以windows来说,当前用户目录下面会有一个.npmrc
文件,这里面存储了用户所有的npm配置信息,当然它应该也有默认值
如:
设置镜像
registry
(一般都使用淘宝的)
npm config set registry
electron总是install 失败,参考网上的解决方案(修改.npmrc
文件追加):
sass_binary_site=https://npm.taobao.org/mirrors/node-sass/
phantomjs_cdnurl=http://npm.taobao.org/mirrors/phantomjs
electron_mirror=https://npm.taobao.org/mirrors/electron/
还有提到
disturl
,看解释是依赖了C++模块时下载太慢需要disturl=http://npm.taobao.org/mirrors/node
npm 全局安装的东西去哪了?强迫症患者怎么能掌控不了我安装的软件。npm config get prefix
npm config get cache
找到了搬迁下就好了(不行就窗口关掉再开下)
Nexus私有仓库
搭建一个仓库会让使用npm更简单,个人感觉自己使用自己的仓库后下载速度会快很多。
Nexus安装的话有很多教程,应该是一个直接内置了Tomcat的一个项目,可以用来管理包括但不限于Maven、npm的包。
这里需要备注的是里面的概念:
- hosts 个人上传的包的实际存储地址
- proxy 代理地址,我们使用我们的仓库,仓库使用这个代理地址去同步
- group 分组,我们不可能说下载个包还要搞两个地址取用,这个里面选择hosts和proxy,我们就可以用这个来同时上传下载了