@lizlalala
2016-08-09T04:37:50.000000Z
字数 1429
阅读 1401
webpack
我们开发时可以选择不用dev-server,直接webpack,打包到比如

目录下(也就是webpack.config.js中output指定的位置):
BUILD_DIR = path.join(__dirname,'build',"javascripts","entries"),output:{path:BUILD_DIR,filename:"[name].bundle.js",
然后在html中引入该文件:

方法二:with dev-server
当然,如果希望hot-loader,实时更新的话,那么需要借助webpack-dev-server,流程上说,webpack把编译好的文件放到静态服务器webpack-dev-server上,然后node服务器返回给前端html页面的时候,需要去加载html相关的js,这个js就需要去静态服务器上查找。因此,我们需要进行如下配置。
(1)入口文件更改:
//webpack.config.js

(2)webpack编译到服务器的位置
//webpack.config.js

即图中publicPath的位置。
(3)node服务器查找资源的位置
//server.js

其中的publicPath
(4)html页面关联的js目录更改
//your.html

现在运行run dev,开启服务器,就可以愉快的实时刷新啦(就跟sublime里面markdown可以实时在浏览器里刷一个样纸。不需要手动重新编译打包blahblah,完全解放双手。。。感天动地。。)
在webpack中,一切都是模块,在此之前,我们通常把js一个个模块独立开,然后import或者require进来,再通过browserify去进行打包。现在webpack不光可以实现这个功能,连css这些资源也可以视为模块,举例来说。
我们需要给Header组件增添样式,于是,新建Header.scss文件
@import "../../stylesheets/reset.css";.header{.share-btn{padding: 20px;background-color:#abd;}}
然后webpack.config.js中指定loader
{test:/\.scss$/,loaders:['style','css','sass'],//loader:"style!css!sass" //run from right to left},
首先会用sass-loader编译成css,css-loader处理里面的url模块加载,style-loader将css样式插入到页面中的style标签中。(loader是从右到左加载,从下到上)。
紧接着,我们就可以在js文件中引入样式了(是的。。。不需要在html中引入link标签),跟引入js一样。
//Header.js(定义Header组件js)import React from "react";import ReactDom from "react-dom";import "./Header.scss";...your component
