Vue项目创建和nodejs使用

Vue项目创建和nodejs使用

一、环境准备

1.1.安装 node.js【下载历史版本node-v14.21.3-x64】

下载地址:https://nodejs.org/en/

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

1.2.安装

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

1.3.检查是否安装成功:

npm -v
node -v

在这里插入图片描述

1.4.在Node下新建两个文件夹 node_global和node_cache并设置权限

在这里插入图片描述

1.5.配置npm在安装全局模块时的路径和缓存cache的路径

默认会将模块安装在C:\Users\用户名\AppData\Roaming路径下的npm和npm_cache中且占用C盘空间
在这里插入图片描述

在node.js安装目录Node下新建两个文件夹 node_global和node_cache

npm config set prefix "D:\DeveloperTools\Node\node_global"

npm config set cache "D:\DeveloperTools\Node\node_cache"

npm config list

在这里插入图片描述

1.6.配置系统变量:Node\node_global\node_modules

NODE_PATH

D:\DeveloperTools\Node\node_global\node_modules

在path里面加 %NODE_PATH%

在这里插入图片描述
在这里插入图片描述

1.7.编辑用户变量里的Path:Node\node_global

编辑用户变量里的Path,将相应npm的路径改为:

D:\DeveloperTools\Node\node_global

在这里插入图片描述

1.8.安装淘宝镜像

阿里巴巴镜像站官网:http://mirrors.aliyun.com/
官网:http://www.npmmirror.com/

使用管理员身份运行命令

# 国外npm本身
npm config set registry https://registry.npmjs.org/

# 淘宝镜像
npm config set registry https://registry.npmmirror.com

在这里插入图片描述

在这里插入图片描述

1.9.查看当前的npm镜像设置:

命令查看配置

npm root -g

npm config list

npm config get prefix

在这里插入图片描述

1.10. 通过.npmrc文件更改源

可以看到C盘用户目录下的.npmrc文件

.npmrc优先级高于环境变量

在项目的根目录或用户的主目录中,创建或编辑.npmrc文件
在这里插入图片描述
在这里插入图片描述

1.11.错误提示淘宝镜像过期

npm 淘宝镜像已经从 registry.npm.taobao.org 切换到了 registry.npmmirror.com

# 原来淘宝镜像
npm config set registry https://registry.npm.taobao.org

# 删除
npm config delete registry

# 清空缓存
npm cache clean --force

# 配置列表
npm config list

在这里插入图片描述

在这里插入图片描述

1.12.express 模块进行测试

//进入安装目录
cd D:\DeveloperTools\Node\node_global\node_modules

//-g代表全局安装
npm install express -g

npm uninstall express -g

在这里插入图片描述

1.13.全局安装webpack

使用管理员身份运行命令

npm install webpack -g 

npm install webpack-cli -g

# 查看安装webpack的版本号
npm webpack -v
npm webpack-cli -v

在这里插入图片描述

1.14.webpack : 无法加载文件 D:\Program Files\nodejs\node_global\webpack.ps1,因为在此系统上禁止运行脚本

解决方案:

以管理员身份运行
执行:get-ExecutionPolicy,显示Restricted,表示状态是禁止的
执行:set-ExecutionPolicy RemoteSigned
这时再执行get-ExecutionPolicy,就显示RemoteSigned
get-ExecutionPolicy

#set-ExecutionPolicy Restricted
set-ExecutionPolicy RemoteSigned

get-ExecutionPolicy

在这里插入图片描述

1.15.全局安装Vue-cli

#vue-cli3 可视化,使用vue-cli3.x初始化项目安装这个
npm install -g @vue/cli

#vue-lcli2,使用vue-cli2.x初始化项目安装这个
npm install -g vue-cli

vue --version

在这里插入图片描述
在这里插入图片描述

二、vite对比webpack

2.1.Webpack

将所有的模块提前编译、打包进 bundle 中,不管这个模块是否被用到,随着项目越来越大,打包启动的速度自然越来越慢。

2.2.Vite

瞬间开启一个服务,并不会先编译所有文件,当浏览器用到某个文件时,Vite 服务会收到请求然后编译后响应到客户端。

2.3.使用webpack打包模式

在这里插入图片描述

2.4.vite打包模式

在这里插入图片描述

三、创建Vue项目

vue官网:https://cn.vuejs.org/
在这里插入图片描述

3.1.方法一【UI界面创建】

vue ui

http://localhost:8000/project/select

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2.方法二:vue init webpack 项目名【vue-cli2.x的初始化方式】

#创建项目
vue init webpack test-vue

#进入目录
cd teat-vue

#初始化
npm install

#运行
npm run dev

在这里插入图片描述

#vue 3.0 使用 vue-cli 2.0创建webpack项目时出现
#创建命令
vue init webpack test-vue2

Command vue init requires a global addon to be installed.
Please run npm i -g @vue/cli-init and try again.

操作提示Please run npm i -g @vue/cli-init
执行npm i -g @vue/cli-init之后,再次执行创建命令即可
注意:项目名不要出现大写字母

在这里插入图片描述

3.3.方法三:vue create 项目名【vue-cli3.x的初始化方式】

#创建项目
vue create test-vue3

#进入目录
cd teat-vue3

#初始化
npm install

#运行
npm run serve

在这里插入图片描述

3.4.方法四:npm init vue@latest

npm init vue@latest

npm init vue@latest 创建的 vue3 项目是基于 Vite 打包的
npm init vue@latest 安装并执行 create-vue,它是 Vue 官方的项目脚手架工具

在这里插入图片描述

四、Vite-下一代的前端工具链

Vite官网:https://www.vitejs.net/guide/

Vite 需要 Node.js 版本 >= 12.0.0

4.1.使用vite构建项目

npm create vite@latest

npm init vite@latest

在这里插入图片描述

4.2.构建一个 Vite + Vue 项目

# npm 6.x
npm create vite@latest my-vue-app --template vue
npm init vite@latest my-vue-app --template vue

# npm 7+, 需要额外的双横线:
npm create vite@latest my-vue-app -- --template vue
npm init vite@latest my-vue-app -- --template vue

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五、nvm 安装与使用

github官网下载:https://github.com/coreybutler/nvm-windows/releases
在这里插入图片描述

六、【Vue2】项目

6.1.axios模块

6.1.1.安装axios模块

vue-axios|axios中文网:http://www.axios-js.com/zh-cn/docs/vue-axios.html
axios官网:https://www.axios-http.cn/docs/intro

npm install --save axios vue-axios

//报错时使用--legacy-peer-deps
npm install --save axios vue-axios --legacy-peer-deps

6.1.2.在入口文件main.js中配置axios

#在入口文件main.js中配置
//引入vue
import Vue from 'vue'
//引入axios
import axios from 'axios'
//引入VueAxios
//安装VueAxios模块后,不需要在每个组件中单独导入axios,只需将axios请求改为this.axios
import VueAxios from 'vue-axios'
//把axios挂载到vue上
Vue.prototype.$axios = axios;

//使用Vue.use来注册安装插件
Vue.use(VueAxios, axios)

new Vue({
  el:'#app',
  render: h => h(App),
})
按照这个顺序分别引入这三个文件: vue, axios and vue-axios

6.1.3.axios使用案例

# 在入口文件main.js中配置
//引入Vue
import Vue from 'vue'
//引入axios
import axios from 'axios'
//把axios挂载到vue上
Vue.prototype.$axios = axios

new Vue({
  el:'#app',
  render: h => h(App),
})
# 第三步:使用案例
this.$axios.get('/user?id=888').then((response) => {
  console.log(response.data)
}).catch( (error) => {
    console.log(error);
});

6.1.4.vue-axios使用案例

#在入口文件main.js中配置
//引入Vue
import Vue from 'vue'
//引入axios
import axios from 'axios'
//引入VueAxios
import VueAxios from 'vue-axios'

//使用Vue.use来注册安装插件
Vue.use(VueAxios, axios)

new Vue({
  el:'#app',
  render: h => h(App),
})
#第三步:使用方式有如下三种
#方式1
Vue.axios.get(api).then((response) => {
  console.log(response.data)
})
#方式2
this.axios.get(api).then((response) => {
  console.log(response.data)
})
#方式3
this.$http.get(api).then((response) => {
  console.log(response.data)
})

6.2.关闭Vue的生产提示

#在入口文件main.js中配置
//关闭Vue的生产提示
Vue.config.productionTip = false

6.3.vue项目中无router文件夹,vue安装路由

新建一个router文件夹,在文件夹下新建一个index.js文件

在这里插入图片描述

6.4.引入Vue Router路由Vue.js【v.3x】

Vue2使用v.3x
Vue Router官网【v3.x】:https://v3.router.vuejs.org/zh/
更新记录【3.x】https://github.com/vuejs/vue-router/releases

//报错时使用--legacy-peer-deps
//vue-router@3x 适用于 vue2
npm install vue-router@3

//指定版本号
npm install vue-router@3.5.2 --save

在这里插入图片描述

#在入口文件main.js中配置
//引入VueRouter
import VueRouter from 'vue-router'

//使用Vue.use来注册安装插件
Vue.use(VueRouter)

//新建一个router文件夹,在文件夹下新建一个index.js文件
//引入路由器
import router from './router/index'

// 创建和挂载根实例
new Vue({
  router, //将路由器注入到new Vue实例中,建立关联
  render: h => h(App),
}).$mount('#app');

6.5.引入ElementUI组件库【Vue2 版本】

ElementUI组件库官网:https://element.eleme.cn/#/zh-CN

npm i element-ui -S
//完整引入
//引入ElementUI组件库
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'

//使用ElementUI组件库
Vue.use(ElementUI)

6.6.main.js完整版

在这里插入图片描述

import App from './App.vue'
//引入Vue
import Vue from 'vue'
//引入axios
import axios from 'axios'
//引入VueAxios
//安装VueAxios模块后,不需要在每个组件中单独导入axios,只需将axios请求改为this.axios
import VueAxios from 'vue-axios'
//引入VueRouter
import VueRouter from 'vue-router'
//完整引入
//引入ElementUI组件库
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
//新建一个router文件夹,在文件夹下新建一个index.js文件
//引入路由器
import router from './router/index'

//把axios挂载到vue上
Vue.prototype.$axios = axios;
//使用Vue.use来注册安装插件
Vue.use(VueRouter)
Vue.use(router)
Vue.use(VueAxios, axios)
//使用ElementUI组件库
Vue.use(ElementUI)
//关闭Vue的生产提示
Vue.config.productionTip = false

// 创建和挂载根实例
new Vue({
  router, //将路由器注入到new Vue实例中,建立关联
  render: h => h(App),
}).$mount('#app');

6.7.页面创建UploadImg.vue

<template>
  <div>
    <el-form>
      <el-form-item label="上传图片">
        <el-upload
          list-type="picture-card"
          :multiple="false"
          :action="uploadUrl"
          :limit="1"
          :on-success="onUploadSuccessIdCard"
        >
          <i class="el-icon-plus"></i>
        </el-upload>
      </el-form-item>
    </el-form>
  </div>
</template>

<script>
export default {
  name: "UploadImg",
  data() {
    return {
      dialogImageUrl: "",
      file_id: "",
      dialogVisible: false,
      uploadUrl: "http://localhost:22100/filesystem/uploadFile", //文件上传地址
      datas: {},
    };
  },
  methods: {
    onUploadSuccessIdCard(response) {
      this.file_id = response.data.fileId;
      this.datas = response.data;
      this.dialogImageUrl = "http://192.168.229.141/" + response.data.filePath;
    },
  },
};
</script>

<style scoped>
</style>

6.8.修改App.vue

<template>
  <div id="app">
    <HelloWorld />
    <!-- 导航链接 -->
    <!-- 路由内容展示 -->
    <router-view></router-view>
  </div>
</template>

<script>
export default {
  name: "App",
};
</script>

<style>
</style>

6.9.创建路由配置router/index.js

//在路由文件router/index.js中配置
// 该文件专门用于创建整个应用的路由器
import VueRouter from "vue-router";

//引入组件
import UploadImg from '@/components/UploadImg'//上传页

//创建路由
const routes = [
  //定义路由
  {
    path: '/',
    name: 'UploadImg',
    component: UploadImg
  },
]

//创建并暴露一个路由器
const router = new VueRouter({
  mode: 'history',
  base: process.env.BASE_URL,
  routes
})

export default router

6.10.页面效果

npm rn serve

在这里插入图片描述

七、【Vue3】项目

6.1.axios模块

6.1.1.安装axios模块

vue-axios|axios中文网:http://www.axios-js.com/zh-cn/docs/vue-axios.html
axios官网:https://www.axios-http.cn/docs/intro

npm install --save axios vue-axios

//报错时使用--legacy-peer-deps
npm install --save axios vue-axios --legacy-peer-deps

6.1.2.在入口文件main.js中配置axios

#在入口文件main.js中配置
import { createApp } from 'vue'
import App from './App.vue'

//引入axios
import axios from 'axios'
//引入VueAxios
//安装VueAxios模块后,不需要在每个组件中单独导入axios,只需将axios请求改为this.axios
import VueAxios from 'vue-axios'

const app = createApp(App);

//使用Vue.use来注册安装插件
app.use(VueAxios, axios)

app.mount('#app')

//createApp(App).mount('#app')
按照这个顺序分别引入这三个文件: vue, axios and vue-axios

6.2.关闭Vue的生产提示

#在入口文件main.js中配置
//关闭Vue的生产提示
app.config.productionTip = false

6.3.vue项目中无router文件夹,vue安装路由

新建一个router文件夹,在文件夹下新建一个index.js文件

在这里插入图片描述

6.4.引入Vue Router路由Vue.js【v.4x】

Vue3使用v.4x
Vue Router官网【v4.x】:https://router.vuejs.org/zh/
更新记录【4.x】https://github.com/vuejs/router/releases

//vue-router4x 适用于 vue3
npm install vue-router@4

//指定版本号
npm install vue-router@4.2.5 --save
import { createApp } from 'vue'
import App from './App.vue'

//引入路由器
import router from './router/index'

const app = createApp(App);

//使用Vue.use来注册安装插件
app.use(router)

app.mount('#app')

在这里插入图片描述

6.5.引入Element Plus组件库【Vue3 版本】

Element Plus组件库官网:https://element-plus.gitee.io/zh-CN/

npm install element-plus --save
// main.ts
import { createApp } from 'vue'
//引入Element Plus组件库
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
import App from './App.vue'

const app = createApp(App)

app.use(ElementPlus)
app.mount('#app')

6.6.main.js完整版

import { createApp } from 'vue'
import App from './App.vue'

//引入axios
import axios from 'axios'
//引入VueAxios
//安装VueAxios模块后,不需要在每个组件中单独导入axios,只需将axios请求改为this.axios
import VueAxios from 'vue-axios'
//新建一个router文件夹,在文件夹下新建一个index.js文件
//引入路由器
import router from './router/index'
//引入Element Plus组件库
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'

const app = createApp(App);
//关闭Vue的生产提示
app.config.productionTip = false

//使用Vue.use来注册安装插件
app.use(VueAxios, axios)
app.use(router)
app.use(ElementPlus)

app.mount('#app')

6.7.页面创建UploadImg.vue

<template>
  <div>
    <el-form>
      <el-form-item label="上传图片">
        <el-upload
          list-type="picture-card"
          :multiple="false"
          :action="uploadUrl"
          :limit="1"
          :on-success="onUploadSuccessIdCard"
        >
          <i class="el-icon-plus"></i>
        </el-upload>
      </el-form-item>
    </el-form>
  </div>
</template>

<script>
export default {
  name: "UploadImg",
  data() {
    return {
      dialogImageUrl: "",
      file_id: "",
      dialogVisible: false,
      uploadUrl: "http://localhost:22100/filesystem/uploadFile", //文件上传地址
      datas: {},
    };
  },
  methods: {
    onUploadSuccessIdCard(response) {
      this.file_id = response.data.fileId;
      this.datas = response.data;
      this.dialogImageUrl = "http://192.168.229.141/" + response.data.filePath;
    },
  },
};
</script>

<style scoped>
</style>

6.8.修改App.vue

<template>
  <div id="app">
    <HelloWorld />
    <!-- 导航链接 -->
    <!-- 路由内容展示 -->
    <router-view></router-view>
  </div>
</template>

<script>
export default {
  name: "App",
};
</script>

<style>
</style>

6.9.创建路由配置router/index.js

import { createRouter, createWebHistory } from 'vue-router'

const routerHistory = createWebHistory(process.env.BASE_URL)

import UploadImg from '@/components/UploadImg'
// 定义路由
const routes = [
  {
    path: '/',
    name: 'UploadImg',
    component: UploadImg
  },
]

// 创建路由器
const router = createRouter({
  history: routerHistory,
  routes: routes
})


export default router;

6.10.页面效果

npm rn serve

在这里插入图片描述

endl

  • 27
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
1.项目代码功能经验证ok,确保稳定可靠运行。欢迎下载使用! 2.主要针对各个计算机相关专业,包括计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网等领域的在校学生、专业教师或企业员工使用。 3.项目具有丰富的拓展空间,不仅可作为入门进阶,也可直接作为毕设、课程设计、大作业、初期项目立项演示等用途。 4.当然也鼓励大家基于此进行二次开发。在使用过程中,如有问题或建议,请及时私信沟通。 5.期待你能在项目中找到乐趣和灵感,也欢迎你的分享和反馈! 【资源说明】 基于VueNodejs开发的docker管理平台源码+项目使用说明.zip 是基于vuenodejs实现的一个简单docker管理平台,主要用到dockerode库实现简单的操作,创建之初也只是想简单管理docker一些常见的操作,让自己更好的去管理的docker,后续必然还会添加更多功能!!!! 功能 1. 支持连接多个docker服务器 2. docker相关信息和当前启动的容器,镜像等 3. 支持镜像拉取,搜索,删除 4. 镜像详情 5. 实时更新镜像拉取情况 6. 支持新建容器 7. 容器支持批量启动关闭移除,进入命令行 项目启动 后端 ```shell csdn下载源码并解压重命名simple-docker-manage cd simple-docker-manage/server yarn #调试 node index.js #打包 yarn build ``` 浏览器输入`http://127.0.0.1:7888/#/index`进入网站 前端 ```shell # 进入ui cd simple-docker-manage/ui yarn # 调试 yarn serve # 打包 yarn build ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

良辰美景好时光

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值