从零开始搭建一个vue项目 -- vue-cli/cooking-cli(一)

news/2024/9/17 16:03:25

从零开始搭建一个vue项目 -- vue-cli/cooking-cli(一)

1.vue-cli搭建一个可靠成熟的项目

1.介绍

vue-cli

  • 我是去年六月份接触的vue1.0,当时还是个菜逼,当然现在也是,写了一年,抄代码的时候一直是copycopy,在别人的框架基础上开发,然后渐渐发现很多vue-start的模板都各有优点,所以慢慢的开始集合到了一起。

  • 使用vue-cli从零开始搭建的话,一些webpack配置也可以让自己明白webpack其实可以做更多的事情。

  • 在使用vue的过程中,转行做了ng4半年左右,对vue也有了更深的理解。

  • 还有一个cooking-cli,配置更简单,假如不想看webpack的复杂配置,可以直接跳到第二篇文章。

2.配置node、webpack

node + webapack

  • webapck需要node提供服务,并且需要npm安装,所以先下载一个node

  • 安装node

node下载

mac推荐下载最新稳定版,windows下载最新版本

下载完成后,打开命令行,输入npm -v 确认安装完成(安利一个命令行工具,同时具备git bash -- ConEmu)

命令行全局安装webpack + vue-cli

npm太慢的话,可以使用cnpm或者yarn(这步可以略过,下面是cnpm的安装,此后npm命令变成cnpm)

    npm install -g cnpm --registry=https://registry.npm.taobao.org    
  • 安装webpack + vue-cli

    npm install -g webpack vue-cli

3.开始构建项目

vue-cli搭建项目

  • 讲解部分webpack配置文件

  • 讲解项目目录

  • 配置路由以及路由文件

  • 构建完成

  • 初始化项目

打开cmd工具 cd /你的项目目录 例:cd f:/plugins

vue init webpack vue-start

mark

这里其实可以一路回车,然后项目就构建好了,稍微讲解一下这些配置吧

? Project name vue-start //你的项目名称
? Project description A Vue.js project // 你的项目描述
? Author 小帅  // 作者的名称
? Vue build standalone // 这个直接选前者,毕竟是推荐
? Install vue-router? Yes // 是否安装vue-router 选是
? Use ESLint to lint your code? No // 是否使用eslint管理代码,个人项目不推荐,不然你还会想办法关掉它
? Setup unit tests with Karma + Mocha? No // 是否使用karma + mocha 否 因人而异吧,我基本不写测试代码
? Setup e2e tests with Nightwatch? No // 是否安装e2e测试 否

然后

cd vue-start // 进入项目目录
npm i //安装项目依赖
npm run dev // 开始!

我们直接来看看项目目录,分析一下,推荐编辑器vscode,这里有一大波vscode的插件!

mark

目录解析

  • build -- 这个文件夹大部分是webpack的配置文件

  • config -- 一些配置文件,比如配置监听端口

  • node_modules -- 你的依赖包都在这里

  • src -- 主工程文件夹,基本上所有的开发都在这个文件夹进行

  • static -- 静态文件目录

  • package.json -- 这个文件是项目的一些配置信息

这篇文章就不做更多的剖析了,直接进入实战吧

npm run dev之后 会自动打开一个浏览器,但是我觉得这个设定我不喜欢,先把这个功能给禁了吧

build/dev-server.js 73行开始

devMiddleware.waitUntilValid(() => {console.log('> Listening at ' + uri + '\n')// when env is testing, don't need open itif (autoOpenBrowser && process.env.NODE_ENV !== 'testing') {opn(uri)}_resolve()
})把这行代码直接注释掉// if (autoOpenBrowser && process.env.NODE_ENV !== 'testing') {//   opn(uri)// }

现在打开浏览器 localhost:8080 项目已经可以运行了

命令行ctrl + c退出进程 现在来试试打包

先安装一个插件anywhere 这个是提供http服务的 直接npm i -g anywhere

安装完成后直接来测试生产环境,先把生产环境配置好,以后省功夫

cmd输入 npm run build && anywhere

然后浏览器输入 http://localhost:8000/dist/ 然后发现页面并没有预期的效果,审查元素可以看出js的路径都错了,这个时候需要修改一个配置文件

config/index.js

module.exports = {build: {env: require('./prod.env'),index: path.resolve(__dirname, '../dist/index.html'),assetsRoot: path.resolve(__dirname, '../dist'),assetsSubDirectory: 'static',assetsPublicPath: '/',productionSourceMap: true,// Gzip off by default as many popular static hosts such as// Surge or Netlify already gzip all static assets for you.// Before setting to `true`, make sure to:// npm install --save-dev compression-webpack-pluginproductionGzip: false,productionGzipExtensions: ['js', 'css'],// Run the build command with an extra argument to// View the bundle analyzer report after build finishes:// `npm run build --report`// Set to `true` or `false` to always turn it on or offbundleAnalyzerReport: process.env.npm_config_report},dev: {env: require('./dev.env'),port: 8080,autoOpenBrowser: true,assetsSubDirectory: 'static',assetsPublicPath: '/',proxyTable: {},// CSS Sourcemaps off by default because relative paths are "buggy"// with this option, according to the CSS-Loader README// (https://github.com/webpack/css-loader#sourcemaps)// In our experience, they generally work as expected,// just be aware of this issue when enabling this option.cssSourceMap: false}
}把build(生产环境)的assetsPublicPath修改为相对路径 也就是修改为
assetsPublicPath: './'然后重新运行一次 npm run build && anywhere这个时候就可以看到和开发环境一样的效果了,这就是线上的环境

本篇文章就介绍到这里 下一篇文章将会介绍如何配置图片的路径,以及路由配置。

一个团结互助的讨论组,专注前端三十年!


mark


http://lihuaxi.xjx100.cn/news/281090.html

相关文章

mysql 释放错误连接_JSP连接MySQL后数据库链接释放的错误

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼在浏览器中运行后,为什么会出现这个错误:type Exception reportmessagedescription The server encountered an internal error () that prevented it from fulfilling this request.exceptionorg.apache.ja…

一起学设计模式 - 责任链模式

责任链模式(ChainOfResponsibilityPattern)属于 行为型模式的一种,将请求沿着一条链传递,直到该链上的某个对象处理它为止。概述定义如下:一个请求有多个对象来处理,这些对象形成一条链,根据条件…

如何光明正大地学习KISS?当然是用这个DL接吻检测器了

选自 arXiv作者:Amir Ziai本文转自“机器之心”(almosthuman2014)不要误会。作为一个严肃的公众号,我们才不会收集什么奇怪的视频呢!我们批判了大量电影,造访了众多 GitHub,这次推荐给大家的内容…

了解下C# 运算符重载

重载运算符是具有特殊名称的函数,是通过关键字 operator 后跟运算符的符号来定义的。您可以重定义或重载 C# 中内置的运算符。因此,程序员也可以使用用户自定义类型的运算符。重载运算符是具有特殊名称的函数,是通过关键字 operator 后跟运算…

作为一个程序员,数学对你到底有多重要(转)

每个计算机系毕业的人,大都学过不少数学课,而且不少学校的计算机系的数学课,通常比一般的其他工科专业的数学要难一些,比如不上高等数学,而是学数学分析,不上线性代数而去上高等代数。但是,大部…

知识图谱公开课 | 详解事件抽取与事件图谱构建

现有知识图谱大多关注于以实体为核心的静态知识,缺乏对于以事件为核心的动态知识的刻画和构建。如何从非结构化文本中抽取结构化的事件知识已成为眼下热门研究课题。本次公开课中,我们邀请到了中科院自动化所模式识别国家重点实验室助理研究员陈玉博&…

计算机视觉四大基本任务(分类、定位、检测、分割)

点击上方“小白学视觉”,选择加"星标"或“置顶”重磅干货,第一时间送达转载于:作者 | 张皓来源 | 知乎(https://zhuanlan.zhihu.com/p/31727402)引言:深度学习目前已成为发展最快、最令人兴奋的机器学习领域之一,许多卓…

百度的71个炸天的开源项目

公众号关注 “视学算法”设为 “星标”,DLCV消息即可送达!原文链接:toutiao.com/i6798125585173316108本文为大家整理了百度开源的70项目,看看有没有感兴趣的。1.JavaScript图表库 EChartsECharts开源来自百度商业前端数据可视化团…