DEV Community

Jihao Deng
Jihao Deng

Posted on • Edited on

1

FRNT000 Node.js, npm and yarn

本篇主要讲前端的基础:Node.js、npm和yarn

经历了两个学期SSM的洗礼,我打算学习一些新的东西。

SSM给我感觉相当笨重,我在写Assignment的时候,web项目不是前后端分离的,要加一个新的功能基本上是写xxx.html -> xxx.js -> controller -> service和dao,竖着写一遍所有的东西。。。

现在的前端框架主要是以下三种:

  • vue
  • angular.js
  • react.js

我看了看学校实习对申请者的要求,react高频出现,而且相对于国内常用的vue,react似乎越来越流行。

node.js

Node.js is a JavaScript runtime environment based on Chrome's V8 engine.

我们实现了前后端分离,实际上是前端用node.js运行react js,angular js,vue等框架,后端用Java运行Spring Boot等框架。

npm

npm is Node package manager. 相当于Java的maven,是一个包管理工具。有了npm,就可以轻松的搭建react的环境。

npm的官网:https://www.npmjs.com/

npm被绑定在了node.js中,安装了node.js就会自带npm。

在cmd中输入npm -v可以查看npm的版本号。

在一个文件夹内输入npm init将给文件夹变成一个npm的标准模块,也就是一个项目。执行命令后会要求输入一系列信息,可以全部按回车用默认值。完成后会生成一个package.json文件,文件内就是我们刚才输入的那些配置。

之后,就可以用npm install来安装插件了,比如要安装react,就可以输入npm install react --save

其中,--save是将模块保存在项目里,package.json会添加以下内容:

"dependencies": {
    "react": "^17.0.1"
  }
Enter fullscreen mode Exit fullscreen mode

这样,别人在下载使用这个模块的时候,就会自动下载dependencies里面的模块。

注意:"17.0.1"表示安装指定的17.0.1版本,"~17.0.1"表示安装17.0.X中最新的版本,"^17.0.1"表示安装17.X.X中最新的版本。

yarn

和npm一样,yarn也是包管理工具 package manager。

yarn更新,更快,弥补了npm的一些缺点:

  • npm 安装包(packages)的速度不够快,拉取的 packages 可能版本不同
  • npm 允许在安装 packages 时执行代码,有安全隐患

yarn 官网:https://classic.yarnpkg.com/

Qodo Takeover

Introducing Qodo Gen 1.0: Transform Your Workflow with Agentic AI

While many AI coding tools operate as simple command-response systems, Qodo Gen 1.0 represents the next generation: autonomous, multi-step problem-solving agents that work alongside you.

Read full post →

Top comments (0)

nextjs tutorial video

Youtube Tutorial Series 📺

So you built a Next.js app, but you need a clear view of the entire operation flow to be able to identify performance bottlenecks before you launch. But how do you get started? Get the essentials on tracing for Next.js from @nikolovlazar in this video series 👀

Watch the Youtube series

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay