vue+webpack+VS Code入门简单的项目配置
为了方便,这边的编译器选择的是VS Code (Visual Studio Code);
打开VS Code,选择好自己的工作空间,然后新建一个文件夹作为我们项目的文件夹,然后,show time;
Ctrl + ` 打开命令行,进行操作
一、初始化
a、进入自己刚才新建的项目文件夹
b、初始化我们的项目,npm init;初始化成一个npm的项目;回车之后的一些选项,直接回车选择默认,

输入yes,回车;
ok,现在在我们的项目文件夹下就多了一个package.json的文件
二、安装所需包
a、既然我们这边要配置的是vue+webpack,那么接下来进行安装;
npm i webpack@3.11.0 vue vue-loader
(i : install ; @3.11.0 指定了一下版本,最新版为4的版本,操作有出入)

安装完,命令行和项目文件夹如上图,由警告内容可以看出,我们还需要进行依赖的安装;
b、安装css-loader 和 vue-template-compiler;
npm i css-loader vue-template-compiler
ok,还有几个WARN没有关于第三方依赖的安装提示的,我们就可以忽略了
项目初始化以及安装包已经完成了,接下来,我们就可以在项目当中写一些内容了
三、项目内容
a、新建文件夹 src,作为源码文件夹
b、src中新建一个vue文件,app.vue

整个的一个app.vue文件就是由template、script、style组成的一个组件
①<template></template> :写的是html内容,要显示出来的东西
②<script></script> : 写的是控制显示内容变化的部分
③<style></style> : 写的就是css样式
c、简单写一下内容

data 作为组件初始化时的数据,为{{text}}提供了数据
写内容时,新安装VS Code的会觉得好不方便,什么提示都没有,这是该咋办呢,那么根据下图在Ctrl+Shift+X扩展里安装一下几个常用的吧;

现在我们这样一个简单的组件写完了,但是这会肯定还是不可以运行的,接着来
四、配置文件
a、新建配置文件:webpack.config.js,进行配置
①const path = require('path'),导入nodejs里面的一个基本包,用来处理路径,这边使用绝对路径
②entry:声明入口
既然声明了入口,那我们就需要一个入口文件,那么在src中新建一个index.js文件,作为入口文件;
然后将组件挂载到入口文件中;
a)在index.js中引用vue的类库 import Vue from 'vue'
b)把app.vue这个组件再引用进来 import App from './app.vue'
c)创建内容渲染出来之后用来显示的节点
e)调用API,$mount();将渲染出来的内容mount到我们第三步创建的节点上面

③再回到webpack.config.js文件,写入入口文件:entry:path.join(__dirname,'src/index.js');(__dirname:为根目录)
④出口文件配置:
⑤在package.json中加入下图一句话:

这样,我们就可以通过 npm run start来运行代码
五、运行调试
通过 npm run start 运行

报错,告诉我们需要为.vue的文件申明一个loader;
module:{
//添加规则,rules
rules:[
{
test: /.vue$/, //文件类型,正则
loader: 'vue-loader' //使用的loader
}
]
}
再次运行 npm run start ;ok,没有再报错!

在dist中生成了bundle.js;打开该文件,当中包括了,webpack固有的代码,用于处理模块依赖,下面还有所有Vue.js的源码,当然我们写的代码也在里面;
以上内容,我们配置了webpack,加载了.vue文件;那我们的css,image文件怎么办呢?下面继续配置
一、配置文件中配置loader
a、css文件和图片文件
module.exports = {
entry:path.join(__dirname,'src/index.js'),
output:{
filename:'bundle.js',
path:path.join(__dirname,'dist')
},
module:{
//正则加\进行对 . 的转译
rules:[
{
test: /\.vue$/,
loader: 'vue-loader'
},
{
test:/\.css$/,
use:[ //这边使用use,数组来写形式
'style-loader',
'css-loader'
]
},
{
test:/\.(gif|jpg|png|svg|jpeg)$/,
use:[
{
loader:'url-loader', //数组里写对象形式,为了增加配置参数
options:{
limit:1024, //小于1024KB的图片转为base64格式代码,存在js中,不生成文件
name:'[name].[ext]' //输出文件的名字,[name]根据原名,[ext]扩展名
}
}
]
}
]
}
}
配置完成,安装相对应的loader;url-loader 依赖于 file-loader,所以也要安装;

好了 ,安装完成!
二、写入CSS文件和图片
在src文件夹中新建一个assets文件夹,再在这个文件夹里新建一个images和一个styles文件夹,分别放如几张图片和新建一个test.css文件

改写一下test.css和index.js;

运行一下 npm run start ;
ok 没有报错,我们可以在dundle.js文件中查看我们css文件和图片的打包情况;
关于图片好像没能完全按我们设置的limit值像预想中一样,转base64格式,这个问题,我也不怎么清楚,知道的求告知!!
webpack-dev-server配置
a、npm i webpack-dev-server进行安装
b、npm i cross-env安装,作用:针对不同平台设置环境变量的不同来使用
c、修改package.json文件中的scripts部分

d、修改webpack.config.js文件
1)const isDev = process.env.NODE_ENV === 'development'声明一个变量用来判断当前的环境变量,返回值为true或者false
启动脚本时,前面的变量都存储在process.env这个对象当中
2)添加一下代码
if(isDev){
config.devServer = {
port:'2018', //监听端口
host:'0.0.0.0', //可以通过内网IP访问
overlay:{ //错误显示到网页
errors:true,
}
}
}
3)还要做的细节改动
module.exports = { }对象改成 const config = { }定义一个对象;在最后

好了,到现在,既然作为一个前端项目,那就这样是肯定打不开的,那就得需要一个html页面作为前端页面入口
1、安装插件,npm i html-webpack-plugin,并引入配置文件中 const HTMLPlugin = require('html-webpack-plugin')
2、使用插件

3、添加
plugins:[
new webpack.DefinePlugin({
'process.env':{
NODE_ENV:isDev?'"development"':'"production"' //用于区分开发还是生产环境,选择不同的打包机制
}
}),
new HTMLPlugin()
]
4、运行 npm run dev;
正常情况下估计都会变成现在这个样子:

那这个问题是什么呢?其实最后这个问题还是归于版本问题;我们的 webpack用的是 @3.11.0的 这边安装的 webpack-dev-server也是版本3的,那就是问题了,
怎么办?妥协吧 npm i webpack-dev-server@2.11.2 重装一下 指定 2 的版本
装完之后,npm run dev 运行一下;

OK,完成,在浏览器中,通过localhost:2018 访问

完成!!!
PS:
VS Code下载
链接:https://pan.baidu.com/s/1-PGMHzyMu-oF_LIYSFYEFg 密码:fsx7
例子源码下载
链接:https://pan.baidu.com/s/1Ll6Hb3aJuQrX8kD9QQwWKg 密码:yykn
vue+webpack+VS Code入门简单的项目配置的更多相关文章
- vue+webpack+npm搭建的纯前端项目
转载来源:https://www.cnblogs.com/shenyf/p/8341641.html 搭建node环境 下载 1.进入node.js官方网站下载页,点击下图中框出位置,进行下载即可,当 ...
- 基于Vue + webpack + Vue-cli 实现分环境打包项目
需求由来:我公司项目上线发布至服务器分为三个环境分别为测试环境.预发布环境.生产环境:前期做法是项目通过脚步打包时由脚步把域名和后缀名之类的全部替换成要发布的环境所需要的,因为我公司的项目比较大由许许 ...
- 【入门】Spring-Boot项目配置Mysql数据库
前言 前面参照SpringBoot官网,自动生成了简单项目点击打开链接 配置数据库和代码遇到的问题 问题1:cannot load driver class :com.mysql.jdbc.Drive ...
- 从0开始搭建vue+webpack脚手架(二)
接着从0开始搭建vue+webpack脚手架(一) 三.配置webpack-dev-server 1. webpack-dev-server自带一个node的服务器, 项目在服务端运行的同时可以实现热 ...
- Vue脚手架创建项目出现 (Failed to download repo vuejs-templates/webpack: Response code 404)
搭建好(脚手架2.X版本)环境像往常一样使用vue init webpack xxxx 创建项目可以是没多久就开始报错了 报错结果就是:vue-cli · Failed to download rep ...
- webpack工具学习 构建简单vue项目(不依赖vue-cli) webpack4.0
目的用webpack构建简单前端项目 1.npm init (npm init -y) 形成package.json 2.npm install --save-dev webpack 形成 n ...
- vue+webpack项目实战
概述 -- 项目中会用到的插件 vue-router vue-resource 打包工具 webpack 依赖环境 node.js start 安装vue开发的模板 # 全局安装 vue-cli $ ...
- Vue 2.x + Webpack 3.x + Nodejs 多页面项目框架(下篇——多页面VueSSR+热更新Server)
Vue 2.x + Webpack 3.x + Nodejs 多页面项目框架(下篇--多页面VueSSR+热更新Server) @(HTML/JS) 这是Vue多页面框架系列文章的第二篇,上一篇(纯前 ...
- Vue + webpack 项目实践
Vue.js 是一款极简的 mvvm 框架,如果让我用一个词来形容它,就是 “轻·巧” .如果用一句话来描述它,它能够集众多优秀逐流的前端框架之大成,但同时保持简单易用.废话不多说,来看几个例子: & ...
随机推荐
- AndroidStudio删除项目
右键左上角的 项目名 右键 > delete 磁盘里的文件还需要手动删除
- Datawindow.net中实现让当前行选中,并且当前行以其他颜色显示
如何在Datawindow.net中实现让当前行选中,并且当前行以其他颜色显示 使用Datawindow.net要选中一行是很容易的意见事情,有很多种办法可以实现,最简单的莫过于使用selectrow ...
- python -m json.tool 中文乱码 Format JSON with python
现在以 json 为数据传输格式的 RESTful 接口非常流行.为调试这样的接口,一个常用的办法是使用 curl 命令: curl http://somehost.com/some-restful- ...
- UltraISO中文版+注册码
UltraISO v9.5.3.2901 百度网盘下载地址: http://pan.baidu.com/s/1l9t2U 新浪微盘下载地址: http://vdisk.weibo.com/s/rcvB ...
- ZOJ3175【公式化函数的思想】
题意: 给出f(n,m)(m<n)的定义:大于m并且小于n的能整除m的数的个数. F(n)为m从1至n的f(n,m)的和. 给出n,求F(n). 思路: 就是计算n/1 + n/2 + n/ ...
- UVALive 7327【模拟】
题意: 每次方案一个或多个子序列: 每个子序列要整除m 认为分割不同,子序列边界的不同就是不同: 1246有4个 1246 12 46 124 6 12 4 6 思路: 先从整体考虑,因为取膜适用于加 ...
- thinkphp5.0 cache数据缓存机制
use think\cache; public function index(){ //Cache::get('name')获取缓存,如果name值不存在则返回false: if (Cache::ge ...
- 51nod1086(多重背包&二進制)
題目鏈接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1086 題意:中文題誒- 思路:很顯然這是一道多重背包題,不過這 ...
- uoj#268. 【清华集训2016】数据交互(动态dp+堆)
传送门 动态dp我好像还真没咋做过--通过一个上午的努力光荣的获得了所有AC的人里面的倒数rk3 首先有一个我一点也不觉得显然的定理,如果两条路径相交,那么一定有一条路径的\(LCA\)在另一条路径上 ...
- 洛谷 P1712 [NOI2016]区间(线段树)
传送门 考虑将所有的区间按长度排序 考虑怎么判断点被多少区间覆盖,这个可以离散化之后用一棵权值线段树来搞 然后维护两个指针$l,r$,当被覆盖次数最多的点的覆盖次数小于$m$时不断右移$r$,在覆盖次 ...