webpack脚手架搭建(简单版)
运行命令
- 安装依赖:
npm install
- 运行项目:
npm start
大致流程
npm init
:新建package.json
将需要的依赖模块加入
dependencies
(生产环境) 和devDependencies
(开发环境,在本地打包所需的模块)npm install
:自动安装上述添加好的模块配置
webpack.config.js
配置
package.json
的script
:自定义命令
如果不在
package.json
里面配置,可以通过手动安装模块(☟),输入命令,执行后会自动添加到dependencies
或devDependencies
中。
文件目录
assets/
- css/
- style.scss
src/
- content.js
- index.js
index.html
package.json
webpack.config.js
package.json 文件预览
{
"name": "webpack_scaffold",
"version": "1.0.0",
"description": "a scaffold with webpack",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "webpack-dev-server --port 8080 --hot --inline --progress --colors --devtool eval",
"build": "webpack --display-error-details",
"watch": "webpack --progress --colors --watch"
},
"author": "Ruth",
"license": "ISC",
"devDependencies": {
"babel-core": "^6.16.0",
"babel-loader": "^6.2.5",
"babel-preset-es2015": "^6.14.0",
"css-loader": "^0.25.0",
"mustache-loader": "^0.3.0",
"node-sass": "^3.4.2",
"sass-loader": "^3.1.1",
"scss-loader": "0.0.1",
"style-loader": "^0.13.1",
"url-loader": "^0.5.7",
"webpack": "^1.13.2",
"webpack-dev-server": "^1.16.1"
},
"dependencies": {
"jquery": "^3.1.1"
},
"repository": {
"type": "git",
"url": ""
},
"bugs": {
"url": ""
},
"homepage": ""
}
webpack.config.js 配置预览
var webpack = require('webpack');
module.exports = {
entry: {
index: [
'webpack-dev-server/client?http://localhost:8080/',
'./src/index.js'
]
},
output: {
path: './dist', // webpack 本地打包路径
filename: "bundle.js",
// 线上发布路径,和path最好保持一致,html页面引入script路径
publicPath: '/dist/'
},
/*devServer: {
historyApiFallback: true,
hot: true,
inline: true,
progress: true
},*/
module: {
loaders: [{
test: /\.css$/,
loader: 'style!css'
}, {
test: /\.scss$/,
loader: 'style!css!sass?sourceMap'
}, {
test: /\.js$/,
loader: 'babel',
// 可以单独在当前目录下配置.babelrc,也可以在这里配置
query: {
presets: ['es2015']
},
// 排除 node_modules 下不需要转换的文件,可以加快编译
exclude: /node_modules/
}, {
test: /\.(png|jpg)$/,
loader: 'url-loader?limit=8192'
}, {
test: /\.tpl$/,
loader: 'mustache'
}]
},
plugins: [
// 暴露全局接口
new webpack.ProvidePlugin({
$: 'jquery',
jQuery: 'jquery'
})
]
}
手动安装模块说明
☛ 安装 webpack
,建议本地安装,减少依赖
`$ npm install webpack --save-dev`
☛ 如果需要使用 webpack 开发者工具,要单独安装
`$ npm install webpack-dev-server --save-dev`
☛ 安装各种 loader:模块和资源的转换器
Webpack 本身只能处理原生的 JavaScript 模块,但是 loader 转换器可以将各种类型的资源转换成 JavaScript 模块。这样,任何资源都可以成为 Webpack 可以处理的模块。
(1)安装 style/css/sass loader
$ npm install --save-dev style-loader css-loader sass-loader
如果有问题,需要安装 node-sass
配置 webpack.config.js
module: {
loaders: [{
test: /\.scss$/,
loader: 'style!css!sass'
}]
}
(2)将 ES2015 转换成 ES6
安装 Babel 和 preset:
$ npm install --save-dev babel-core babel-preset-es2015
安装 babel-loader
$ npm install --save-dev babel-loader
配置 babelrc
{ "presets": [ "es2015" ] }
配置 webpack.config.js
module: {
loaders: [{
test: /\.js$/,
// 排除 node_modules 下不需要转换的文件,可以加快编译
exclude: /node_modules/,
loader: 'babel-loader'
}]
}
(3) 安装需要的第三方库
npm install --save jquery babel-polyfill
// --save:添加到 dependencies 中,表明是运行时所需要的库
// 使用 babel-polyfill:ES2015 API 在旧的浏览器中也可以使用
(4)其他库
☛ 安装插件
其他
github地址:
webpack_scaffold2:在 webpack_scaffold1 的基础上进行更改,对 css 及第三方 js 库进行打包,并更改 webpack.config.js 中的启动本地服务的配置
具体参考
☂ 参考:
☂ 问题解决参考:
webpack脚手架搭建(简单版)的更多相关文章
- 使用vue-cli脚手架搭建简单项目框架
1.首先已经安装了node,最好版本6以上. 2.安装淘宝镜像 大家都知道国内直接使用 npm 的官方镜像是非常慢的,这里推荐使用淘宝 NPM 镜像.这样就可以直接使用cnpm了. npm insta ...
- vue-cli脚手架搭建项目简单入门一
搭建系统: Windows系统 简单了解Node.js.npm,安装Node.js,下载网址:http://nodejs.cn/download/ 查看node,npm安装成功与否.打开cmd命令行, ...
- 从0开始搭建vue+webpack脚手架(三)
在从0开始搭建vue+webpack脚手架(二)中已经基本完成了开发环境的配置.当开发完成后,我们需要将完成的项目进行打包,接下来对打包做一些优化: 运行 $ npm run build 可生成dis ...
- 从0开始搭建vue+webpack脚手架(二)
接着从0开始搭建vue+webpack脚手架(一) 三.配置webpack-dev-server 1. webpack-dev-server自带一个node的服务器, 项目在服务端运行的同时可以实现热 ...
- 前端MVC Vue2学习总结(七)——ES6与Module模块化、Vue-cli脚手架搭建、开发、发布项目与综合示例
使用vue-cli可以规范项目,提高开发效率,但是使用vue-cli时需要一些ECMAScript6的知识,特别是ES6中的模块管理内容,本章先介绍ES6中的基础与模块化的内容再使用vue-cli开发 ...
- vue开发环境搭建Mac版
一.前言 要做一个移动端app,面对webapp最流行的三个技术React,angular,vue,三选一,如何选,可参考blog移动app技术选型,react,angular, vue, 下面是对 ...
- 在windows下用脚手架搭建vue环境
做了几个月vue项目,最近两个项目使用脚手架搭建的,确实用脚手架搭建方便了许多,想想以前自己手配的时候,确实是... 1.在这之前我是默认你已经使用过vue的,也默认你已经安装了node.js 2.接 ...
- 利用VUE-CLI脚手架搭建VUE项目
前言 在学习完vue基础语法之后,学着利用vue-cli脚手架搭建一个项目,本篇随笔主要记录搭建的过程,供大家一起学习. 具体内容 搭建vue项目的准备工作 1.安装Nodejs.NPM以及VSCod ...
- 个人脚手架搭建 -- charmingsong-cli
个人脚手架搭建 -- charmingsong-cli 目的 为了解决多次构建相同功能的项目,在一定程度上需要定制化以及私有化设置 设计 问题 为什么不用现成的脚手架生成? 如果利用vue或者reac ...
随机推荐
- 【Tarjan】+【SPFA】APIO2009 Atm
一.算法介绍 tarjan——求解有向图强连通分量.这个算法在本人的一篇blog中有介绍,这里就不赘述了.贴上介绍tarjan的的blog链接:http://www.cnblogs.com/Maki- ...
- [问题2015S01] 复旦高等代数 II(14级)每周一题(第二教学周)
[问题2015S01] 设 \(M_n(\mathbb{R})\) 是 \(n\) 阶实方阵全体构成的实线性空间, \(\varphi\) 是 \(M_n(\mathbb{R})\) 上的线性变换, ...
- python2 到 python3 转换工具 2to3
windows系统下的使用方法: (1)将python安装包下的Tools/Scripts下面的2to3.py拷贝到需要转换文件目录中. (2)dos切换到需要转换的文件目录下,运行命令2to3.py ...
- winfrom的两种拖拽方式和界面阴影
方式1private Point mouseOffset; //记录鼠标指针的坐标 private bool isMouseDown = false; //记录鼠标按键是否按下 private voi ...
- iOS开发数据库篇—SQLite简单介绍
iOS开发数据库篇—SQLite简单介绍 一.离线缓存 在项目开发中,通常都需要对数据进行离线缓存的处理,如新闻数据的离线缓存等. 说明:离线缓存一般都是把数据保存到项目的沙盒中.有以下几种方式 (1 ...
- 【数位dp】
hdu5787 问:L ~ R有多少个数是K-wolf Number?其中,K-wolf Number的定义是这个数在十进制下,任意相邻的K个字符没有相同的. dp[i][j][k]表示有i个空位可填 ...
- 手势抽取过程&代码复用
public abstract class BaseSetupActivity extends Activity { private GestureDetector gestureDetector; ...
- 对数组进行malloc动态分配的一些总结
笔者在处理程序奔溃问题的时候,遇到栈溢出的情况,栈溢出最常见的情况是:迭代调用和数组过大.数组占用占空间,所以改为了malloc方式放在堆上.想想,就想整理一下关于对多维数组的动态分配问题. 一,堆和 ...
- zabbix3.0.4 部署之二 (Centos6.5系统准备)
1.安装Centos6.5 2.6.32-642.4.2.el6.x86_64 升级所有软件至最新: yum update 2.同步时间.安装ntpd yum install ntpddate n ...
- Modify textures at runtime
动态修改Texture Modify textures at runtime?http://answers.unity3d.com/questions/7906/modify-textures-at- ...