我也准备要尝试一些前端开发了!发现网上有些教程写得挺好,但是还是有点老(并且有点错误),所以这里更新一下:

主要参考了这篇教程:Vue2——1. 安装教程_vue2 cdn-CSDN博客

并且使用NPM方式进行安装:

上面教程中提到,访问node.js官网:https://nodejs.org/zh-cn/download 然后就可以看到不同的安装方式。除了这些,在ubuntu上还可以这样安装:

sudo apt-get update
sudo apt-get install nodejs npm

然后再运行:

node -v
npm -v

就可以看到node.js和npm的版本,不是很新,但是应该是可以用的。

然后按照上面的教程:

# 创建项目文件夹
mkdir vue-npm-demo
# 进入项目文件夹
cd vue-npm-demo
# 初始化项目(创建package.json文件)
npm init -y

就可以看到在文件夹下生成了package.json文件。然后运行:

npm install vue@2.7.16 --save

和上面那个链接教程不一样,我这里安装的是Vue2的最终版。然后可以看到文件夹下面多了node_modules和package-lock.json两个文件夹。(--save参数表示将Vue添加到项目依赖中,会在package.json文件中记录。)

接下来按照这个目录结构创建两个文件夹:

vue-npm-demo/
├── node_modules/      # 依赖包目录
├── public/            # 静态文件目录
│   └── index.html     # 入口HTML文件
├── src/               # 源代码目录
│   └── main.js        # 入口JavaScript文件
├── package.json       # 项目配置文件
└── package-lock.json  # 依赖版本锁定文件

public和src。并且分别在两个目录下面新建index.html和main.js。前者的内容:

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Vue2 NPM示例</title>
</head>
<body><div id="app"></div>
</body>
</html>

后者:

// 导入Vue
import Vue from 'vue';// 创建Vue实例
new Vue({el: '#app',// render函数用于渲染页面render: h => h({template: `<div><h1>{{ message }}</h1><p>当前时间: {{ currentTime }}</p></div>`,data() {return {message: 'Hello Vue2 (NPM安装)',currentTime: new Date().toLocaleString()}}})
});

其次我们通过npm安装相关webpack相关依赖:

# 安装开发依赖
npm install webpack webpack-cli webpack-dev-server html-webpack-plugin vue-loader vue-template-compiler css-loader style-loader --save-dev

之后,在根目录下创建webpack.config.js文件:

const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const VueLoaderPlugin = require('vue-loader/lib/plugin');module.exports = {entry: './src/main.js',output: {path: path.resolve(__dirname, 'dist'),filename: 'bundle.js'},module: {rules: [{ test: /\.vue$/, loader: 'vue-loader' },{ test: /\.css$/, use: ['style-loader', 'css-loader'] }]},plugins: [new HtmlWebpackPlugin({template: './public/index.html'}),new VueLoaderPlugin()],devServer: {port: 8080,open: true}
};

package.json中的scripts部分添加:

  "scripts": {"test": "echo \"Error: no test specified\" && exit 1","dev": "webpack serve --mode development","build": "webpack --mode production"},

(增加的是上面字段中的最下面两行)

然后就可以运行项目了:

npm run dev

结果不出意外的报错了:

[webpack-cli] Failed to load '/home/quyu/Projects/vue-npm-demo/webpack.config.js' config
[webpack-cli] Error: Cannot find module 'vue-loader/lib/plugin'

呵呵呵呵,简单分析一下怎么回事:

感觉是没找到组件的缘故,在百度里面搜了一下后一个报错,发现Vue2应该装对应版本的vue-loader:

npm install vue-loader@15.9.7 --save-dev

结果报了另一个错:

[webpack-cli] Failed to load '/home/quyu/Projects/vue-npm-demo/webpack.config.js' config
[webpack-cli] Error: Cannot find module 'webpack/lib/rules/DescriptionDataMatcherRulePlugin'

搜了一下,可能是因为webpack的版本问题,选了一种容易的方法:

有时候,简单地清理 node_modules 目录和缓存可以解决问题。你可以使用以下命令来做到这一点:

npm cache clean --force
rm -rf node_modules package-lock.json
npm install

神奇地发现不报错了!但是又有了一个新的问题,打开的页面里面什么都没显示!按照上面的教程,运行结果应该是:

浏览器会自动打开http://localhost:8080
页面显示"Hello Vue2 (NPM安装)"和当前时间
修改代码后页面会自动刷新(热重载)

看一下开发者工具,原来有个报错:

vue.runtime.esm.js:4674 [Vue warn]: You are using the runtime-only build of Vue where the template compiler is not available.

解决方法也很简单,例如这里说的:【Vue】You are using the runtime-only build of Vue where the template compiler is not available.-CSDN博客

  1. main.js文件中,将import Vue from 'vue'改为import Vue from 'vue/dist/vue.esm.js'。这个版本中包含了模板编译器,可以直接使用Vue的模板功能。

这么改就解决问题了,可以看到当前时间。本来觉得那个教程总结得挺好的,谁想还是各种问题。今天就简单总结这么多。

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

任务十九 打包部署

一、本地打包部署 首先在自己的电脑上,下载一个nginx nginx: download 之后再vscode中,进行打包 输入命令 npm run build 打包过后,会在项目的根目录下,生成一个dist的文件夹

《飞算Java AI使用教程:从安装入门到实践项目》

前引&#xff1a;在当今人工智能技术飞速发展的时代&#xff0c;Java作为企业级开发的主流语言&#xff0c;正与AI技术深度融合。飞算Java AI是一款强大的工具集&#xff0c;旨在帮助开发者轻松构建和部署智能应用&#xff0c;涵盖机器学习、自然语言处理等核心功能。本教程将带…

NestJS 依赖注入方式全解

一、基础注入方式 1. 构造函数注入&#xff08;Constructor Injection&#xff09; 适用场景&#xff1a;模块间依赖传递&#xff0c;服务初始化时必须存在的依赖 实现方式&#xff1a;通过构造函数参数声明依赖&#xff0c;NestJS 自动解析并注入 Injectable() class UserServ…

完整源码+技术文档!基于Hadoop+Spark的鲍鱼生理特征大数据分析系统免费分享

&#x1f393; 作者&#xff1a;计算机毕设小月哥 | 软件开发专家 &#x1f5a5;️ 简介&#xff1a;8年计算机软件程序开发经验。精通Java、Python、微信小程序、安卓、大数据、PHP、.NET|C#、Golang等技术栈。 &#x1f6e0;️ 专业服务 &#x1f6e0;️ 需求定制化开发源码提…

云原生俱乐部-shell知识点归纳(1)

shell的内容也挺多的&#xff0c;虽然云原生课程主要是讲grep、sed、awk三剑客&#xff0c;但是还有结合循环结构&#xff0c;判断语句&#xff0c;以及函数等内容。还是有点复杂的&#xff0c;并且我对shell的掌握并不多&#xff0c;所以写的可能并不全。当然&#xff0c;如果…

设计模式(四)——责任链模式

1. 责任链模式的定义 责任链模式&#xff08;Chain of Responsibility&#xff0c;简称 CoR&#xff0c;也叫职责链模式&#xff09;是一种行为型设计模式&#xff0c;允许一个请求在一系列处理器&#xff08;handlers&#xff09;中传递。每个处理器可以选择自己处理该请求&am…

MyBatis-Plus基础篇详解

文章目录前言一、简单介绍MyBatis-Plus1.1 特性1.2 架构二、SpringBoot集成MyBatis-Plus2.1 项目搭建2.2 导入所需依赖2.3 配置application.yml2.4 创建实体类2.5 创建Mapper接口2.6 启动类配置三、DQL操作3.1 基础查询3.2 QueryWrapper查询3.3 LambdaQueryWrapper查询3.4 分页…

基于W55MH32Q-EVB 实现 HTTP 服务器配置 OLED 滚动显示信息

目录 1 前言 2 项目环境 2.1 硬件准备 2.2 软件环境 3.硬件连接和方案 3.1 硬件连接 3.2 方案图示 4.例程修改 1 前言 HTTP&#xff08;超文本传输协议&#xff0c;HyperText Transfer Protocol&#xff09;是一种用于分布式、协作式、超媒体信息系统的应用层协议&#xff0c; …

YggJS RLogin暗黑霓虹主题登录注册页面 版本:v0.1.1

项目介绍 yggjs_rlogin 是一个专注于 React 登录/注册页面的组件库。本文档介绍“暗黑霓虹”主题&#xff1a;#111 暗色背景 青蓝霓虹描边输入框 赛博朋克光效按钮。 安装说明 安装&#xff1a;pnpm add yggjs_rlogin react react-dom使用&#xff1a;从 yggjs_rlogin 引入组…

大数据毕业设计选题推荐:护肤品店铺运营数据可视化分析系统详解

&#x1f34a;作者&#xff1a;计算机毕设匠心工作室 &#x1f34a;简介&#xff1a;毕业后就一直专业从事计算机软件程序开发&#xff0c;至今也有8年工作经验。擅长Java、Python、微信小程序、安卓、大数据、PHP、.NET|C#、Golang等。 擅长&#xff1a;按照需求定制化开发项目…

【github-action 如何为github action设置secrets/environment】

Using secrets in GitHub Actions 在 GitHub Actions 中使用密钥 Learn how to create secrets at the repository, environment, and organization levels for GitHub Actions workflows. 学习如何在仓库、环境和组织级别为 GitHub Actions 工作流创建密钥。 Creating secre…

宝塔面板Docker安装n8n汉化中文

一、Docker安装N8N 安装配置默认即可&#xff0c;如果端口已被使用&#xff0c;可以自行更改 当状态为运行中时&#xff0c;就可以点击端口&#xff1a;访问N8N 填写完信息后&#xff0c;点击下一步&#xff08;邮箱要能接收邮件&#xff1a;接收密钥&#xff09; 点开始 点击发…

F003疫情传染病数据可视化vue+flask+mysql

编号:F003 文章结尾有CSDN官方提供的学长的联系方式&#xff01;&#xff01; 欢迎关注B站 ✅ vue flask 前后端分离架构 ✅ 实现中国地图、柱状图、折线图、水地图、环图等多种图形的echarts可视化分析 视频 vueflask爬虫 新冠疫情大屏实现 python 可视化分析项目源码1 系统…

plantsimulation知识点25.8.19 工件不在RGV中心怎么办?

如果出现这种情况&#xff0c;工件不在RGV的中心该怎么处理。首先说一下出现这种情况的原因。因为模拟的是两台RGV共同托举一个工件移动&#xff0c;实际上RGV控制的代码还是写在一条轨道的传感器控制代码中。另一台RGV只是从动的&#xff0c;工件也是在其中任意一台RGV上&…

redis-sentinel基础概念及部署

一. 引言&#xff1a;Redis Sentinel 是 redis 官方提供的高可用解决方案&#xff0c;主要用于监控 Redis 主从集群&#xff0c;在主节点故障时自动完成故障转移&#xff0c;确保服务持续可用。二. 核心功能1. 监控&#xff08;monitoring&#xff09;&#xff1a;持续检查主节…

LangChain RAG 简述

在 LangChain 中实现 RAG&#xff08;检索增强生成&#xff0c;Retrieval-Augmented Generation&#xff09;的核心思路是&#xff1a;让大模型在生成回答前&#xff0c;先从外部知识库&#xff08;如文档、数据库等&#xff09;中检索相关信息&#xff0c;再基于检索到的内容生…

GEO 优化专家孟庆涛:技术破壁者重构 AI 时代搜索逻辑

在生成式 AI 重塑全球搜索生态的浪潮中&#xff0c;中国 GEO&#xff08;生成式引擎优化&#xff09;领域的开拓者孟庆涛以 "智能决策革命" 的技术框架&#xff0c;颠覆了传统 "发发文章" 的简单认知。作为辽宁粤穗网络科技有限公司总经理兼 GEO 实验室主任…

用relation-graph构建关系图谱 vue版

用relation-graph构建关系图谱 vue版vue文件和Json数据vue文件和Json数据 <template><div><div style"margin-top:0px;width: calc(100% - 10px);height:calc(100vh);"><RelationGraph ref"graphRef" :options"graphOptions&qu…

Python基础-控制结构

控制结构是编程语言中用来控制程序执行流程的语句。Python提供了条件语句、循环语句等控制结构&#xff0c;让程序能够根据不同条件执行不同的代码块。 程序执行流程图&#xff1a; ┌───────────────────────────────────────────…

Java算法之排序

下面我们将讲述七大基于比较的排序算法的基本原理及实现。并从稳定性、时间复杂度、空间复杂度3种性能对每种排序进行分析。 重点&#xff1a;快速排序和堆排序&#xff1b;难点&#xff1a;快速排序和归并排序 目录 一、排序概念 二、常见排序算法的实现 2.1 插入排序 2.…