创建 vue-cli 脚手架项目
- 安装
vue-cli
:npm install vue-cli -g
- 使用
vue
初始化基于webpack
的新项目:vue init webpack projectName
- 进入项目目录安装依赖:
npm install
package.json
定义了这个项目所需要的各种模块,以及项目的配置信息,每个项目的根目录下都有,npm install
命令会根据这个配置文件,自动下载所需的模块,也就是配置项目所需的运行和开发环境。(如果需要手动创建,可使用npm init --yes
安装一个默认的package.json
) - 项目运行起来
npm run dev
- 项目正常启动后,可继续安装vue的辅助工具
安装项目运行所依赖的模块(dependencies 模块)时:npm install xxx —save
或npm install xxx -S
安装项目开发所需要的模块(devDependencies模块),如,linter, 测试库等:npm install xxx —save-dev
或npm install xxx -D
如安装路由:npm install vue-router --save
- 打包的命令
npm run build
,打包完成后目录下会多一个dist的文件夹
调整 src 文件目录结构
在开发路径src
下增加modules
和pages
文件夹,分别存放模块和页面有关页面的所有文件都放到同一文件夹下就近管理:1
2
3
4
5
6
7modules (通用 js 和通用 css 文件)
pages(放页面相关文件)
main.js(页面入口文件)
App.vue(页面使用的组件)
components(放公用组件)
router(页面的路由配置)
assets(页面的静态资源)
配置 webpack 文件
脚手架项目中运行npm run build
即可自动进行打包
设置项目小图标ico
build/webpack.dev.conf.js
文件中添加:1
2
3
4
5
6new HtmlWebpackPlugin({
filename: 'index.html',
template: 'index.html',
inject: true,
favicon: './static/favicon.ico' //添加这行
})
index.html
中添加:1
<link rel="shortcut icon" href="static/favicon.ico" type="image/x-icon"/>
重启后项目的小图标已经设置完成:1
npm run dev
自定义字体设置
字体放到项目目录中,如字体名为: animal.ttf
建一个 css 文件,引入字体并设置字体名:1
2
3
4@font-face {
font-family: animal;
src: url("./animal.ttf");
}
项目中引入 css 文件:1
2
3
4
5// css 样式中引入方式
@import "./animal-font.css";
// js 样式中引入方式
import "./animal-font.css";
从小程序分享的 H5(vue-cli) 页面时ios系统正常,android分享时地址出错
具体如下:ios
系统的分享后解析的地址:https://miniapi.yourgenex.com/h5/#/activity/eat-animal/home?token=eyJ0eXAiOiJKV1QiLCJhbGciOi
android
系统分享后解析的地址:https://miniapi.yourgenex.com/h5?token=eyJ0eXAiOiJKV1QiLCJhbGciOi/#/activity/eat-animal/home
解决:去除 vue
的路由地址的 #
号分隔1
2
3
4const router = new VueRouter({
mode: 'history',
routes: [...]
})
css中使用相对路径引入字体和图片后打包出错的问题解决
解决:build
文件夹 - utils.js
文件中添加一行代码:1
2
3
4
5
6
7
8
9
10
11
12if (options.extract) {
return ExtractTextPlugin.extract({
use: loaders,
fallback: 'vue-style-loader',
publicPath: '../../' // 添加这行
})s
} else {
return ['vue-style-loader'].concat(loaders)
}
// URL 以"~ "、"@"开头,"~ " 、"@"后的任何内容都会作为一个模块请求被解析,如:
// url('~assets/font/wanwan.woff')
// ps: @ 是在 webpack 设置的 alias
Webpack打包后的文件路径不正确
将config
-index.js
-assetsPublicPath
中的/
改成./
即可