【前端】win11操作系统安装完最新版本的NodeJs运行npm install报错,提示在此系统上禁止运行脚本

🌹欢迎来到《小5讲堂》🌹

🌹这是《前端》系列文章,每篇文章将以博主理解的角度展开讲解。🌹

🌹温馨提示:博主能力有限,理解水平有限,若有不对之处望指正!🌹

目录

前言

感觉每次重新安装一次vue运行环境都会遇到一些问题,这次在安装完成nodejs之后,没有重启电脑情况,直接运行npm install安装依赖时,就提示报错了。

解决方案

这个错误是因为 PowerShell 的执行策略限制导致的。以下是几种解决方法:

方法1:以管理员身份运行 PowerShell 并更改执行策略

  1. 以管理员身份打开 PowerShell

    • 在开始菜单搜索 "PowerShell"
    • 右键点击 "Windows PowerShell",选择 "以管理员身份运行"
  2. 执行以下命令:

powershell 复制代码
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
  1. 或者更宽松的策略:
powershell 复制代码
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser

运行后就不会报错了,显示依赖包正在下载中,npm install,会根据配置文件下载对应的依赖,自动创建文件夹node_modules保存对应的依赖包。

方法2:只为当前会话临时允许

powershell 复制代码
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process

方法3:使用命令提示符 (CMD)

暂时使用 CMD 代替 PowerShell:

cmd 复制代码
npm install 你的包名

方法4:绕过策略执行单个脚本

powershell 复制代码
powershell -ExecutionPolicy Bypass -File "C:\Program Files\nodejs\npm.ps1"

推荐解决方案

建议使用方法1 ,设置 RemoteSigned 策略,这样:

  • 可以运行本地脚本
  • 从互联网下载的脚本需要数字签名
  • 平衡了安全性和便利性

完成后,重新打开终端,npm 命令应该可以正常工作了。

Node.js 详细介绍

如果对nodejs概念有点忘记了,那么可以看看下面详细介绍回顾回顾下。

什么是 Node.js?

Node.js 是一个基于 Chrome V8 引擎 的 JavaScript 运行时环境,让开发者能够使用 JavaScript 编写服务器端应用程序。

核心特点

1. 非阻塞 I/O 和事件驱动

javascript 复制代码
// 非阻塞代码示例
const fs = require('fs');

// 非阻塞方式读取文件
fs.readFile('file.txt', 'utf8', (err, data) => {
    if (err) throw err;
    console.log(data);
});
console.log('程序继续执行,不会等待文件读取完成');

2. 单线程但高并发

  • 使用事件循环处理并发
  • 通过异步操作避免线程阻塞
  • 适合 I/O 密集型应用

架构组成

1. V8 JavaScript 引擎

  • 由 Google 开发
  • 将 JavaScript 编译为机器码
  • 高性能执行

2. LibUV 库

  • 跨平台异步 I/O 库
  • 处理事件循环
  • 提供线程池

3. 核心模块

javascript 复制代码
const http = require('http');        // HTTP 服务器
const fs = require('fs');            // 文件系统
const path = require('path');        // 路径处理
const events = require('events');    // 事件处理

安装与使用

安装

bash 复制代码
# 下载安装包从官网
# 或使用包管理器
# Windows Chocolatey
choco install nodejs

# macOS Homebrew
brew install node

验证安装

bash 复制代码
node --version    # 查看 Node.js 版本
npm --version     # 查看包管理器版本

基本用法示例

1. 创建 HTTP 服务器

javascript 复制代码
const http = require('http');

const server = http.createServer((req, res) => {
    res.writeHead(200, {'Content-Type': 'text/html'});
    res.end('<h1>Hello Node.js!</h1>');
});

server.listen(3000, () => {
    console.log('服务器运行在 http://localhost:3000');
});

2. 文件操作

javascript 复制代码
const fs = require('fs').promises;

async function readFile() {
    try {
        const data = await fs.readFile('example.txt', 'utf8');
        console.log(data);
    } catch (error) {
        console.error('读取文件出错:', error);
    }
}

3. 模块系统

javascript 复制代码
// math.js
exports.add = (a, b) => a + b;
exports.multiply = (a, b) => a * b;

// app.js
const math = require('./math');
console.log(math.add(2, 3)); // 5

包管理 - npm

常用命令

bash 复制代码
npm init                 # 初始化项目
npm install express      # 安装包
npm install -g nodemon   # 全局安装
npm update               # 更新包
npm run start            # 运行脚本

package.json 示例

json 复制代码
{
    "name": "my-app",
    "version": "1.0.0",
    "scripts": {
        "start": "node app.js",
        "dev": "nodemon app.js"
    },
    "dependencies": {
        "express": "^4.18.0"
    }
}

应用场景

适合的场景

  • API 服务器 (RESTful, GraphQL)
  • 实时应用 (聊天室、游戏)
  • 微服务架构
  • 命令行工具
  • Web 爬虫
  • SSR (服务器端渲染)

不适合的场景

  • CPU 密集型任务 (图像处理、视频编码)
  • 大型科学计算

生态系统

流行框架和库

  • Express.js - Web 应用框架
  • Socket.IO - 实时通信
  • Mongoose - MongoDB ODM
  • Sequelize - SQL ORM
  • Jest - 测试框架
  • Webpack - 模块打包

开发工具

  • Nodemon - 自动重启开发服务器
  • PM2 - 进程管理
  • ESLint - 代码检查
  • Prettier - 代码格式化

优势与劣势

优势 ✅

  • 前后端语言统一 (JavaScript)
  • 高性能和非阻塞 I/O
  • 庞大的生态系统 (npm)
  • 活跃的社区支持
  • 快速开发

劣势 ❌

  • 回调地狱 (Callback Hell)
  • 单线程限制 CPU 密集型任务
  • 相对年轻的生态系统
  • 频繁的 API 变化

学习路径建议

  1. 基础 - JavaScript 语法、Node.js 核心模块
  2. 框架 - Express.js、Koa
  3. 数据库 - MongoDB、MySQL
  4. 认证 - JWT、OAuth
  5. 部署 - Docker、云平台

Node.js 让 JavaScript 从浏览器走向服务器,开创了全栈开发的新时代!

文章推荐

【前端】win11操作系统安装完最新版本的NodeJs运行npm install报错,提示在此系统上禁止运行脚本

【前端】Vue 3 + TypeScript 中 var 与 let 的区别,面试可能会问到,你知道怎么回答吗

【前端】使用Vue3过程中遇到加载无效设置点击方法提示不存在的情况,原来是少加了一个属性

【前端】Vue3+elementui+ts,TypeScript Promise转string错误解析,习惯性请出DeepSeek来解答

【前端】Vue3+elementui+ts,给标签设置样式属性style时,提示type check failed for prop,再次请出DeepSeek来解答

【前端】layui table表格勾选事件,以及常见模块

【前端】Layui的表格常用功能,表单提交事件,表格下拉按钮点击事件,表格外的按钮点击事件

【Echarts】曲线图上方显示数字以及自定义值,标题和副标题居中,鼠标上显示信息以及自定义信息

【Echarts】柱状图上方显示数字以及自定义值,标题和副标题居中,鼠标上显示信息以及自定义信息

【随笔】程序员如何选择职业赛道,目前各个赛道的现状如何,那个赛道前景巨大

【随笔】程序员的金三银四求职宝典,每个人都有最合适自己的求职宝典

相关推荐
晚霞的不甘2 小时前
Flutter for OpenHarmony3D DNA 螺旋可视化:用 Canvas 构建沉浸式分子模型
前端·数据库·经验分享·flutter·3d·前端框架
a11177610 小时前
医院挂号预约系统(开源 Fastapi+vue2)
前端·vue.js·python·html5·fastapi
0思必得010 小时前
[Web自动化] Selenium处理iframe和frame
前端·爬虫·python·selenium·自动化·web自动化
行走的陀螺仪12 小时前
uni-app + Vue3编辑页/新增页面给列表页传参
前端·vue.js·uni-app
We་ct13 小时前
LeetCode 205. 同构字符串:解题思路+代码优化全解析
前端·算法·leetcode·typescript
2301_8127314114 小时前
CSS3笔记
前端·笔记·css3
ziblog14 小时前
CSS3白云飘动动画特效
前端·css·css3
越努力越幸运50814 小时前
CSS3学习之网格布局grid
前端·学习·css3
半斤鸡胗14 小时前
css3基础
前端·css