npm install -g webpack
npm init
sub.js
function generateText() {
var element = document.createElement(‘h2‘);
element.innerHTML = "Hello h2 world";
return element;
}
module.exports = generateText;
var sub = require(‘./sub‘);
var app = document.createElement(‘div‘);
app.innerHTML = ‘<h1>Hello World</h1>‘;
app.appendChild(sub());
document.body.appendChild(app);
npm install html-webpack-plugin --save-dev
var path ^ require(‘path‘);
var HtmlwebpackPlugin = require (‘html-webpack-plugin‘);
// 定义了一些文件夹的路径
var ROOT_PATH = path.resolve(__dirname);
var APP_PATH = path.resolve(ROOT_PATH,‘app‘);
var BUILD_PATH = path.resolve(ROOT_PATH,‘build‘);
module.exports = {
//项目的文件夹 可以直接用文件夹名称 默认会找index.js 也可以确定是哪个文件名字
enrty:APP_PATH,
// 输出的文件名 合并以后的js会命名为bundle.js
output:{
path:BUILD_PATH,
filename:‘bundle.js‘//将app文件夹中的两个js文件合并成build目录下的bundle.js文件
},
// 添加我们的插件 会自动生成一个html文件
plugins:{
new HtmlwebpackPlugin({
titile: ‘Hello World app‘
})// 在build目录下自动生成index.html,指定其title
}
}
webpack
npm install webpack
touch~/.bash_profile
vim~/.bash_profile
export NODE_PATH="/user/local/lib/node_modules"
source~/.bash_profile
webpack --watch
,动态监听文件的改变并实时打包,输出新bundle.js文件;但不能做到hot replace,即每次webpack编译之后,还需手动刷新浏览器。a. webpack-dev-server简介:
iframe mode
在网页中嵌入了一个iframe,将我们自己的应用注入到这个iframe当中去,因此每次你修改的文件后,都是这个iframe进行了reload
命令行webpack-dev-server
,无需--inline
inline mode
命令行webpack-dev-server --inline
浏览器访问:http://localhost:8080
b.安装webpack-dev-server
npm install webpack-dev-server --save-dev
c.在webpack.config.js中添加配置
var webpack = require(‘webpack‘);
module.exports = {
......
devServer: {
historyApiFallback: true,
inline: true, //注意:不写hot:true,否则浏览器无法自动刷新;也不要写colors:true,progress:true等,webpack2.x已不支持这些
},
plugins:[
......
new webpack.HotModuleReplacementPlugin()
......
]
}
"scripts":
{
"start":"webpack-dev-server --inline"//注意:不写--hot,否则浏览器无法自动更新
}
npm start
npm install webpack
webpack和webpack-dev-server安装配置
原文:https://www.cnblogs.com/hleisurely/p/13296358.html