布景
去年不是降本增“笑”,“裁人”广进来着吗,公司有个项目因此停止了,最近又说这个项目仍是很有必要的,就又从头发动这个项目了,然后让我这个“大聪明”把环境从头跑起来。让我无奈的是,原项目的团队成员都现已被增“笑”了,只留下了一堆不知从哪开端着手的文档。
后端还好,前端我心里就犯嘀咕了,究竟现已5年没有重视过前端了,前次写前端代码用的仍是一个基于Angular构建的移动结构inoic,不知道我们用过没有。
好在这个项目前端也用的Angular结构,本以为整个进程会很顺畅,然而,成果总是适得其反。果不其然,在搭建前端开发环境时就给我上了一课,整个进程让我抓耳挠腮,遂特此记载。
环境搭建心路历程
跟着文档操作
前端文档中对环境搭建有进行阐明,一共有4个步骤,大概是这样的:
- 承认node环境,需求某个及以上版别。
- 装置@angular/cli。
- 装置依靠。
- 发动项目。
看到这里,我榜首反应是“啊?现在前端这么费事的吗?”,我记住曾经在浏览器直接打开页面就能够访问了。咱也不懂,跟着阐明操作就行。
- 我本地不知道啥时候装了nodejs,履行node -v后输出v18.13.0,符合要求。ok
- @angular/cli这是啥,咋也不懂,履行装置指令就行,输出看上去是没有问题。ok
- 装置依靠我了解跟Maven的依靠办理一样,先不管,履行。ok
- 到这一步,我觉得应该能够顺畅发动,看一看这个项目的庐山真面目了,成果履行 npm start 后报下面这个错。
出现问题一:nodeJS版别过高
Error: error:0308010C:digital envelope routines::unsupported
......
......
{
'opensslErrorStack': [ 'error:03000086:digital envelope routines::initialization error' ],
'library': 'digital envelope routines',
'reason': 'unsupported',
'code': 'ERR_OSSL_EVP_UNSUPPORTED'
}
......
......
百度一看,原因是node 17版别之后,OpenSSL3.0对算法和密钥大小增加了严格的限制。
处理呗,降版别呗,node官网 下载了v14.12.0。
出现问题二:nodeJS版别低于Angular CLI版别
降版别之后从头运行npm start
,您猜猜怎么着
Node.js version v14.12.0 detected.
The Angular CLI requires a minimum Node.js version of v18.13.
Please update your Node.js version or visit https://nodejs.org/ for additional instructions.
很明显,新老版别抵触了,又是版别问题,又是一顿百度之后,发现知乎上的一个帖子跟我这问题现象是一样的:“node是最新版,npm发动项目使用的不是最新版的node,请问这个怎么处理?”
跟着下面的谈论又装置了nvm(Node Version Manager),最后一顿操作后,莫名其妙的发动了。
过后才反应过来,这个问题的根本原因是:Angular CLI是在node版别为18.3时装置的,版别更新到14.12.0后需求删除依靠从头装置。
可是我不确定的是对应的npm版别会不会一同更新,有知道的小伙伴谈论区沟通一下。color{blue}{可是我不确定的是对应的npm版别会不会一同更新,有知道的小伙伴谈论区沟通一下。}
不过nvm的确好用,至少不必担心node和npm版别问题,比方下面的指令:
[xxx % ] nvm use --delete-prefix v18.13.0
Now using node v18.13.0 (npm v8.19.3)
学到的榜首个知识:nvm
这里记载下nvm装置进程
- clone this repo in the root of your user profile
- cd ~/ from anywhere then git clone github.com/nvm-sh/nvm.… .nvm
- cd ~/.nvm and check out the latest version with git checkout v0.39.7
- activate nvm by sourcing it from your shell: . ./nvm.sh
配置环境变量
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion" # This loads nvm bash_completion
引发的考虑
技术发展一日千里
早在几年前,程序员是要前后端一起开发的,不分什么前后端,我从最开端的HTML、JavaScript开端用到AngularJS这些结构,形象最深刻的是还要处理兼容IE浏览器。没想到现在的前端也会有版别办理、组件化等等,可见技术更新迭代速度之快。
前端的重要性
当初在选择后端的时候以为前端技术无非就那些,没有什么应战。事实上,前后端没有分离之前,市场上的应用页面也是极端简练的,前后端一起统筹是没有精力写出那么美观的界面和交互的。所以“前端已死”的观念我是不认可的。
降本增“笑”被逼全栈
前几天参加了开发者社区的线下聚会,聊了一下行情。有小伙伴吐槽,因为在降本增“笑”的原因,现在他们被公司要求要写前端,被逼向全栈发展,竟意外发现开发功率极端高。还有小伙伴说“前端被裁的剩余几个人,一个前端对接十个后端。”。是呀,在降本增“笑”之后,老板恨不能让一个人干十个人的活。
与时俱进
不论是几年前的前后端分离仍是降本增“笑”带来的被逼全栈,仍是最近“前端已死”的观念,一切都是职业发展所需求的。我们需求做到的是:不断学习和更新自己的知识和技术,以习惯职业的发展和改变。