在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.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.…