首页 > 前端开发 > 最新文章

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

CSDN博客 2026-05-08 17:36:29 人看过

在这里插入图片描述


前言

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

在这里插入图片描述

解决方案

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

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


以管理员身份打开 PowerShell

在开始菜单搜索 “PowerShell”

右键点击 “Windows PowerShell”,选择 “以管理员身份运行”


执行以下命令:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

或者更宽松的策略:

Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser

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

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

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process

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

暂时使用 CMD 代替 PowerShell:

npm install 你的包名

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

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 和事件驱动

// 非阻塞代码示例 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. 核心模块

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

安装与使用

安装

# 下载安装包从官网 # 或使用包管理器 # Windows Chocolatey choco install nodejs # macOS Homebrew brew install node

验证安装

node --version    # 查看 Node.js 版本 npm --version     # 查看包管理器版本

基本用法示例

1. 创建 HTTP 服务器

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. 文件操作

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. 模块系统

// 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

常用命令

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

package.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 变化

学习路径建议

基础 - JavaScript 语法、Node.js 核心模块

框架 - Express.js、Koa

数据库 - MongoDB、MySQL

认证 - JWT、OAuth

部署 - Docker、云平台

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

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章