当前位置: 首页 > news >正文

在Ubuntu上安装并使用Vue2的基本教程

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

主要参考了这篇教程: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.lryc.cn/news/625468.html

相关文章:

  • ComfyUI部署Wan2.2,开放API,文生视频与图生视频
  • Diamond开发经验(1)
  • Unity进阶--C#补充知识点--【C#各版本的新功能新语法】C#1~4与C#5
  • 【科研绘图系列】R语言绘制多组火山图
  • 腾讯混元3D系列开源模型:从工业级到移动端的本地部署
  • Java:枚举的使用
  • arcgis-空间矫正工具(将下发数据A的信息放置原始数据B的原始信息并放置到成果数据C中,主要按下发数据A的范围)
  • Android-ContentProvider的跨应用通信学习总结
  • IPD流程执行检查表
  • Java高级面试实战:Spring Boot微服务与Redis缓存整合案例解析
  • 我的SSM框架自学3
  • 《C++进阶之STL》【二叉搜索树】
  • Vulkan笔记(七)---图像视图
  • Mac(七)右键新建文件的救世主 iRightMouse
  • 前沿技术借鉴研讨-2025.8.19 (信号提取、信号拆分、胎心诊断)
  • C++---为什么迭代器常用auto类型?
  • Flink on Native K8S安装部署
  • Typescript入门-对象讲解
  • C/C++ 常见笔试题与陷阱详解
  • 电脑出现‘无法启动此程序,因为计算机中丢失dll’要怎么办?2025最新的解决方法分析
  • vue3+element-plus 输入框el-input设置背景颜色和字体颜色,样式效果等同于不可编辑的效果
  • 微软行业案例:英格兰足球超级联赛(Premier League)
  • Flask 路由详解:构建灵活的 URL 映射系统
  • Flutter AlwaysScrollableScrollPhysics详解
  • Windows 平板/电脑 上使用 DHCPSRV 搭建 DHCP 服务器
  • 后台管理系统-8-vue3之首页count数据的渲染
  • Flink Stream API - 源码二开详细实现
  • Python爬虫第一课:爬取HTML静态网页小说章节
  • 【教程】在 VMware Windows 虚拟机中使用 WinPE 进行离线密码重置或取证操作
  • CT Micro’s New HV Photo-MOSFET Relay Optocouplers