Ubuntu18.04遇到的nodejs的坑记录

news2025/1/21 10:20:25

Ubuntu18.04安装nodejs的正确姿势

问题回顾

给我的博客网站整上代码高亮插件,在本地运行一切完美,可在我的Ubuntu18.04 bionic版本服务器上运行却报了以下的错误

ERROR in ./node_modules/highlight.js/lib/languages/xml.js
Module parse failed: Error parsing regular expression: Invalid regular expression: /[\p{L}_]/: Invalid escape (18:36)
You may need an appropriate loader to handle this file type.
|   // const TAG_NAME_RE = regex.concat(/[A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/, regex.optional(/[A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*:/), /[A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*/);
|   // however, to cater for performance and more Unicode support rely simply on the Unicode letter class
|   const TAG_NAME_RE = regex.concat(/[\p{L}_]/u, regex.optional(/[\p{L}0-9_.-]*:/u), /[\p{L}0-9_.-]*/u);
|   const XML_IDENT_RE = /[\p{L}0-9._:-]+/u;
|   const XML_ENTITIES = {
 @ ./node_modules/highlight.js/lib/index.js 14:29-55
 @ ./src/main.js


ERROR in ./node_modules/highlight.js/lib/languages/python.js
Module parse failed: Error parsing regular expression: Invalid regular expression: /[\p{XID_Start}_]\p{XID_Continue}*/: Invalid escape (10:20)
You may need an appropriate loader to handle this file type.
| function python(hljs) {
|   const regex = hljs.regex;
|   const IDENT_RE = /[\p{XID_Start}_]\p{XID_Continue}*/u;
|   const RESERVED_WORDS = [
|     'and',
 @ ./node_modules/highlight.js/lib/index.js 145:32-61
 @ ./src/main.js

第一反应是nodejs的版本问题。看了看,本地的版本是

$ node -v
v18.14.2

又查了查服务器上的版本

$ node -v
v8.17.0

服务器上属实是老版本了,于是我开始更新nodejs和npm版本

痛苦的过程

这里可以略过,是我踩坑的经历

第一坑:

如果先更新了npm,那么恭喜你踩了第一个坑

// 更新到最新版本
npm install -g npm

把npm更新到最新版本,而nodejs的版本很老,就会产生以下错误

npm v10.1.0 is known not to run on Node.js v8.17.0

不管执行什么npm指令,都会报这个错。

解决办法: 卸载掉nodejs,重新安装。

第二坑:

卸载了nodejs后,按照网上的说法,照搬着安装最新版

# Using Ubuntu
curl -fsSL https://deb.nodesource.com/setup_current.x | sudo -E bash -
sudo apt-get install -y nodejs

这个的原理是,ubuntu默认了nodejs的一个版本为固定源,我们需要指定一个Nodejs版本成为替代的源。

然而我的bionic死活更新不了新版nodejs的源,一切让我感到困惑……

解决办法: 去nodejs官方github里一探究竟
在这里插入图片描述

好家伙,原来是我的老伙计bionic不支持最新版nodejs

正确的姿势

// 卸载老版nodejs
sudo apt-get remove --purge nodejs

// 根据nodejs官方git上的说明,安装正确版本的nodejs。像我的18.04 bionic,就该安装16版本
sudo curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt-get install -y nodejs

再次npm run build,这回我的代码高亮插件终于没有报错咯~

参考链接

官方nodejs github

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1007322.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

安装最新版React devtool

1.按照官方文档执行 我这里只想在项目里安装,因此执行的 npm install react-devtools^4 2.安装完成后,在 package.json里加入启动命令 "script": {"dev": "react-devtools" }执行npm run dev会弹出一个窗口 如果是全局…

Redis从简单到高级的总结(超详细)

Redis简单 1、Redis Redis是一个基于内存的key-value结构数据库。Redis 是互联网技术领域使用最为广泛的存储中间件。**官网:**https://redis.io **中文网:**https://www.redis.net.cn/ **key-value结构存储:****主要特点:**- 基…

Vue3 监听属性-watch

文章目录 Vue3 监听属性-watch1. 概念2. 实例2.1 通过使用 watch 实现计数器2.2 千米与米之间的换算2.3 异步加载中使用 watch2.4 小计 Vue3 监听属性-watch 1. 概念 Vue3 监听属性 watch,可以通过 watch 来响应数据的变化。 watch 的作用:用于监测响应…

Navicate操作说明

Navicate介绍 源自百度百科 “Navicat”是一套可创建多个连接的数据库管理工具,用以方便管理 MySQL、Oracle、PostgreSQL、SQLite、SQL Server、MariaDB 和 MongoDB 等不同类型的数据库 操作文档 1.想找出某字段同时满足多个值,比如id值为7或8的记录 方…

pcl--第二节 深度图像RangeImage

从点云创建深度图 目前深度图像的获取方法有激光雷达深度成像法,计算机立体视觉成像,坐标测量机法,莫尔条纹法,结构光法等等,针对深度图像的研究重点主要集中在以下几个方面, 深度图像的分割技术深度图像…

G. The Great Equalizer

Problem - G - Codeforces 思路:通过它给定的这个操作,我们能够发现操作的本质,在排序后,其实每次操作之后,都会把相邻的两个数的差值减少1,所以最大的操作次数就是相邻的最大的差值,并且这个是…

Pytorch学习:torch.max()

文章目录 torch.max()dimkeepdimdim0dim1 out:返回命名元组 (values, indices) torch.max() torch.max(input) → Tensor:返回 input 张量中所有元素的最大值。 注意输入的必须是张量形式,输出的也为张量形式 当输入为tuple类型时&#xf…

如何写营销软文?写营销软文需要注意什么?

营销软文是企业推广产品或服务的重要手段之一。一篇优秀的营销软文能够吸引读者的关注并引起他们的购买欲望,进而增加转化率。本文伯乐网络传媒将分享如何写好营销软文,以及注意事项,帮助您提升营销软文的效果。 一、明确目标受众和营销目标 …

基于SSM的汽车租赁系统

基于SSM的汽车租赁系统【附源码文档】、前后端分离 开发语言:Java数据库:MySQL技术:SpringSpringMVCMyBatisVue工具:IDEA/Ecilpse、Navicat、Maven 【主要功能】 角色:管理员、用户 管理员:用户管理、汽车…

【LeetCode题目详解】第十章 单调栈part01 739. 每日温度 ● 496.下一个更大元素 I (day58补)

本文章代码以c为例! 一、力扣第739题:每日温度 题目: 给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。…

[Google DeepMind] LARGE LANGUAGE MODELS AS OPTIMIZERS

Large Language Models as Optimizers 文章链接 总体架构Optimization by PROmpting (OPRO):最开始输入meta-prompt,这个初始的meta-prompt基本上只是对优化任务进行了描述(也会有few-shot example)。输入后LLM便会生成一个solution,这个sol…

解决SpringMVC在JSP页面取不到ModelAndView中数据

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl 问题描述 ModelAndView携带数据跳转到指定JSP页面后在该页面通过EL表达式取不到原本存放在ModelAndView中的数据。 问题原因 在IDEA中创建Maven工程时web.xml中默认的约束…

贝叶斯网络实战(附代码)

贝叶斯网络实战 1. 建立虚拟环境2. 学生是否获得推荐信3. 泰坦尼克数据集预测存活人员参考 1. 建立虚拟环境 conda create -n BayesNN38 python3.8 conda activate BayesNN38 pip install pgmpy2. 学生是否获得推荐信 代码如下: from pgmpy.models import Bayesia…

Spring Boot集成EasyExcel实现数据导出

在本文中,我们将探讨如何使用Spring Boot集成EasyExcel库来实现数据导出功能。我们将学习如何通过EasyExcel库生成Excel文件,并实现一些高级功能,如支持列下拉和自定义单元格样式,自适应列宽、行高,动态表头 &#xff…

处理:对于移动类型Z21和帐户8051010100 供应商货物移动 (014)的不同的字段选择

对于移动类型Z21和帐户8051010100 供应商货物移动 (014)的不同的字段选择 消息编号 M7093 诊断 来自 移动类型Z21和 总帐科目8051010100的字段选择串的比较显示了在一点或更多点处有不兼容的字段选择组合。 字段选择不同的字段:供应商货物移动 范例 在移动类型屏幕上…

JavaScript逻辑题:输出1000之内的所有完数。所谓完数指的是:如果一个数恰好等于它的所有因子之和,这个数就称为完数。

// 定义函数function judgeNum(){// 定义数组存储完数let arr []// for循环1000以内的所有数for(let i 1;i<1000;i){// 定义sum存储一个数的因子之和let sum 0;// 内层循环一个数的因子for(let j 1;j<i;j){if(i % j 0){sum j;}}// 如果一个数和它的因子之和相等&am…

【idea】将已有项目文件夹添加为项目模块

前后效果 变更方法 适用场景 项目为maven项目适用&#xff0c;如果不是maven项目不适用

IDEA指定Maven settings file文件未生效

背景&#xff1a;在自己电脑上配置的时候&#xff0c;由于公司项目和我自己的项目的Maven仓库不一致&#xff0c;我就在项目中指定了各自的Maven配置文件。但是我发现公司的项目私有仓库地址IDEA总是识别不到&#xff01; 俩个配置文件分别是&#xff1a; /Users/sml/Mine/研发…

Vue3 快速入门和模板语法

vite方式建立项目 1.安装vue vite组件 # 安装组件或更新 npm i vite vue -g# 建立项目 npm init vue v301 cd v301 npm run dev# 建立项目 vue create vue v302 cd v302 npm run dev 2. 配置项目vite.config.ts import {fileURLToPath, URL} from node:urlimport {defineConfi…

web-案例

分页插件 登录 事务