仿B站项目——(2)环境配置,文件目录
环境配置
主要参考入门Webpack,看这篇就够了,webpack入门和webpack实用配置。
实用开发环境
利用下面的webpack.json
和webpack.config.js
可以搭建一个使用ejs和sass的实用开发环境。
webpack.json
"devDependencies": {
"autoprefixer": "^8.1.0",
"babel-core": "^6.26.0",
"babel-loader": "^7.1.4",
"babel-plugin-transform-runtime": "^6.23.0",
"babel-preset-env": "^1.6.1",
"babel-preset-react": "^6.24.1",
"babel-runtime": "^6.26.0",
"css-loader": "^0.28.10",
"ejs-compiled-loader": "^1.1.0",
"extract-text-webpack-plugin": "^3.0.2",
"file-loader": "^1.1.11",
"html-webpack-inline-source-plugin": "0.0.10",
"html-webpack-plugin": "^3.0.6",
"image-webpack-loader": "^4.1.0",
"postcss-loader": "^2.1.1",
"style-loader": "^0.20.3",
"webpack": "^4.1.1",
"webpack-cli": "^2.0.11",
"webpack-dev-server": "^3.1.1"
},
webpack.config.js
//webpack.config.js
const webpack = require('webpack');
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
//const ExtractTextPlugin = require('extract-text-webpack-plugin');
module.exports = {
devtool: 'none',
entry: {
index: './src/page/index.js'
},
output: {
path: path.resolve(__dirname, 'build'),
publicPath: '/dist/', //相对路径替换
filename: 'bundle-[hash].js'
},
devServer: {
port: 3030, //端口
contentBase: './public', //本地服务器所加载的页面所在的目录
historyApiFallback: true, //不跳转
inline: true, //实时刷新
hot: true
},
watchOptions: {
poll: 1000, //监测修改的时间(ms)
aggregateTimeout: 500, //防止重复按键,500毫秒内算按一次
ignored: /node_modules/, //不监测
},
module: {
rules: [
{
test: /\.jsx|\.js$/,
exclude: /node_modules/,
use: {
loader: 'babel-loader',
options: {
cacheDirectory: true, //启用缓存
plugins: ['transform-runtime']
}
}
},
{
test: /\.css$/,
use: [
'style-loader',
{
loader: 'css-loader',
options: {
modules: false, //是否启用css-module
localIdentName: '[name]__[local]' //类名转换
}
},
{
loader: 'postcss-loader',
options: {
plugins: [
require('autoprefixer')
]
}
},
'sass-loader'
]
},
{
test: /\.(png|jpg|gif|svg)$/i,
use:[
'url-loader?limit=8192&name=[name]-[hash:5].[ext]',
{
loader: 'image-webpack-loader',
options: {
mozjpeg: {
progressive: true,
quality: 65
},
optipng: {
enabled: false,
},
pngquant: {
quality: 80,
speed: 4
},
gifsicle: {
interlaced: false,
},
webp: {
quality: 75
}
}
}
]
}
]
},
plugins: [
new webpack.BannerPlugin('This file is created by sishenhei7'),
//使用模板生成html文件
new HtmlWebpackPlugin({
filename:'index.html',
template: 'ejs-compiled-loader!src/page/template.html',
title:'this is index',
chunks: ['index']
}),
new webpack.HotModuleReplacementPlugin() //热加载插件
//new ExtractTextPlugin('styles.css') //把CSS文件分离出来
]
};
目录生成
踩坑:果然目录生成要在前端工程里面完成,因为环境配置要利用目录来设置路径。
我自己思考的目录是这样的:
├── src
│ ├── config
│ │ └── configX.js #配置文件
│ ├── page
│ │ ├── pageX.js #页面入口
│ │ └── pageX.ejs #页面模板
│ ├── static
│ │ ├── .js #静态js比如jQuery.js
│ │ ├── .css #静态css比如normalize.css
│ │ └── .jpg #静态图片
│ └── component #各个模块
│ └── widgetX
│ ├── .scss
│ ├── .js
│ ├── .html
│ ├── .jpg
│ └── test #单元测试(暂时没有)
│ └── test.js
├── mobile #手机端(暂时没有)
├── dist #打包文件夹
│ ├── assets #各种css, js, image资源
│ │ ├── .css
│ │ ├── .js
│ │ └── .jpg
│ └── pageX.html #各种页面
├── record
│ └── record.md #项目记录
├── .babelrc #babel配置文件
├── .gitignore #git配置文件,哪些不上传git
├── package-lock.json
├── package.json
├── README.md
└── webpack.config.js
仿B站项目——(2)环境配置,文件目录的更多相关文章
- 仿B站项目(3)页面配置
页面配置 B站有很多页面,比如说首页啊,动画页啊,音乐页啊,舞蹈页啊,那就从首页开始. 通过观察首页,可以看见有很多模块除了内容之外,在布局颜色等方面都是一样的,所以我可以开发一些模板或者插件,到时候 ...
- 仿B站项目——(1)计划,前端工程
计划 现打算: 计划用webpack打包 + 模板语言 + jquery + jquery ui + bootstrap做一个仿B站的静态网站. 网站兼容手机浏览器端. 部分模块打算仿照SPA用js加 ...
- 使用EmBitz开发STM32项目的环境配置
一.EmBitz软件获取与安装 1.EmBitz软件的获取 EmBitz原名Em::Blocks,是基于Code::Blocks开发的,面向嵌入式的C/C++集成开发环境.支持J-Link和ST-Li ...
- vue项目eslint环境配置与vscode配置eslint
eslint基础环境搭建 全局安装eslint:npm install eslint -g 项目eslint初始化:eslint --init,按团队或自己的编程风格回答三道题. ? How woul ...
- node.js项目多环境配置
配置多种场景 我们的系统是要在不同的环境下运行的,不同的环境可能是不同的端口号,不同的数据库地址,数据库用户和密码, 并且可能有的需要自动重启有的不需要自动重启. 我们在有一个配置的时候是无法满足这么 ...
- 前端 vue-cli+Webpack 项目开发环境配置、创建一个vue-demo
一.软件及命令: (1)下载node.js 最新的LTS 版本,下载 msi格式的(直接点击安装即可). (2)命令1:npm install cnpm -g 命令2:cnpm install web ...
- vue 的准备项目架构环境配置
一.环境搭建 中国镜像 composer config repo.packagist composer https://packagist.phpcomposer.com 命令 composer in ...
- python项目离线环境配置指南
参考文献: http://blog.csdn.net/candcplusplus/article/details/52156324 https://www.cnblogs.com/michael-xi ...
- vue2.0项目的环境配置以及有哪些的坑
npm run dev项目运行:$ git pull origin master 更新代码项目的提交代码git push -u origin master 这里就开始准备提交到网络上了 项目的地址gi ...
随机推荐
- 记号一下selenium+Firefox自动下载的参数
参考: https://blog.csdn.net/wxstar8/article/details/80782556 https://blog.csdn.net/xiaoguanyusb/articl ...
- SQL Server 磁盘请求超时的833错误原因分析以及解决
本文出处:http://www.cnblogs.com/wy123/p/6984885.html 最近遇到一个SQL Server服务器响应极度缓慢,并且出现客户端请求报错的情况,在数据库中的erro ...
- 本学期c#学习总结
本学期c#学习总结 时间转瞬即逝,大一上半学期的学习生涯已经结束.虽然以前我没什么关于学习计算机的基础,但是经过了这几个月的学习我也还是有点收获的. 我发现c#语言的关键词有很多语言特性和固定的用法, ...
- Could not find a package,configuration file provided by "G2O" ,G2OConfig.cmake,g2o-config.cmake
因为项目需要使用到g2o,所以自己从git上面clone下来, git clone https://github.com/RainerKuemmerle/g2o.git 然后: cd g2o mkdi ...
- eclipse修改工作目录颜色
转载请注明本地址,http://blog.csdn.net/u013173247/article/details/41676495 经常用Eclipse的朋友都应该清楚,Eclipse的白背景不知道晃 ...
- ucore-lab1-练习5report
实验5--实现函数调用堆栈跟踪函数 需要完成kdebug.c中函数print_stackframe的实现,可以通过函数print_stackframe来跟踪函数调用堆栈中记录的返回地址. 一.函数堆栈 ...
- mysql 判断字符串是否有某个字符
代码: SELECT LOCATE("_","a_123") -->2 (返回字符的位置,从1开始) SELECT ('123' REGEXP '[^0 ...
- windows下mysql安装(zip包方式)
1.安装地址 https://dev.mysql.com/downloads/mysql/ 2. 解压MySQL压缩包 发现并没有my-default.ini 配置文件主要的作用是设置编码字符集.安装 ...
- BZOJ2212或洛谷3521 [POI2011]ROT-Tree Rotations
BZOJ原题链接 洛谷原题链接 线段树合并裸题. 因为交换子树只会对子树内部的逆序对产生影响,所以我们计算交换前的逆序对个数和交换后的个数,取\(\min\)即可. 对每个叶子节点建一棵动态开点线段树 ...
- C++ 提取网页内容系列之四正则
标 题: C++ 提取网页内容系列之四作 者: itdef链 接: http://www.cnblogs.com/itdef/p/4173833.html 欢迎转帖 请保持文本完整并注明出处 将网页内 ...