webpack入門+react環(huán)境配置
小結放在前:這篇文章主要是為下一篇的react提前鋪好路,webpack是一個前端資源模塊化管理和打包工具,說白了就是方便我們管理自己的常用的一些代碼,比如你開發(fā)中用到sass以及jade同時用到es6,開發(fā)時你不可能改動某個地方就挨個命令去轉換在到瀏覽器去看效果,那樣效率是非常低的。所以webpack幫我們省去了那些多余的步驟
webpack 基本安裝
開始前還是萬萬不能缺少的安裝:
npm install webpack -g
安裝完接著是建個文件夾新建一個package.json依賴管理文件
npm init //運行后 按提示填寫 當然嫌麻煩 就直接下一步 下一步就好 無傷大礙
現(xiàn)在安裝我們的webpack
npm install webpack --save-dev //--save-dev 的意思是將這個安裝過程記錄到我們的package.json依賴管理文件里
完后新建一個文件并命名為webpack.config.js(如同我們的常規(guī)的 gulpfile.js、Gruntfile.js),就是一個配置項,告訴 webpack 它需要做什么。
打開webpack.config.js引入webpack
var webpack = require('webpack');
webpack 基本入門
webpack主要結構分三個:入口文件配置(entry)、入口文件輸出配置(output)、加載器配置(module)、其他配置(resolve)
入口文件配置
entry: {
index : './src/main.js'
},
入口文件輸出配置
//配置編譯成功后文件存放的位置
output: {
path: 'dist/js', //編譯后文件所在的文件夾
filename: '[name].js' //根據(jù)入口文件名命名編譯后的文件名,編譯后文件還是叫main.js
},
加載器配置
module: {
//最關鍵的一塊配置,它告知 webpack 每一種文件都需要使用什么加載器來處理
loaders: [
{ test: /\.css$/, loader: 'style-loader!css-loader' },
{ test: /\.js$/, loader: 'jsx-loader?harmony' },
{ test: /\.scss$/, loader: 'style!css!sass?sourceMap'},
{ test: /\.(png|jpg)$/, loader: 'url-loader?limit=8192'}
]
},
其他配置
resolve: {
//自動擴展文件后綴名,意味著我們require模塊可以省略不寫后綴名
extensions: ['', '.js', '.json', '.scss']
}
ok!好記憶不如爛筆頭,現(xiàn)在我們來自己搭建一個react的開發(fā)環(huán)境吧!
先參考我的目錄結構

build存放編譯后的文件,development存放react代碼的文件夾,components存放react組件的文件夾,node_modules存放安裝的依賴
我們先要安裝一些項目依賴:
npm install --save-dev react react-dom npm install --save-dev babel-core babel-loader babel-preset-es2015 babel-preset-react npm install --save-dev style-loader css-loader sass-loader url-loader npm install --save-dev webpack-dev-server //自動刷新修改后的結果,在webpack.config.js中配置webpack-dev-server, //在這里需要修改下entry的路徑,給它加一個webpack/hot/dev-server,后文會提到
要是安裝失敗那就分開一個個裝,還不行就用淘寶的cnpm裝 ,還不行就看看你的node和npm的環(huán)境變量等配置(親身體會T_T)
npm install cnpm -g
行!接下來是文件的內(nèi)容
webpack.config.js文件的配置如下:
var path = require('path');
var webpack = require('webpack'); //加載webpack依賴包
module.exports = {
entry: ['webpack/hot/dev-server', path.resolve(__dirname, './development/main.js')],
//入口文件并添加了熱加載
output: {
path: path.resolve(__dirname, './build'),
filename: 'bundle.js' //輸出文件
},
module: {
loaders: [
{
test: /\.js?$/,
exclude: /(node_modules|bower_components)/,
loader: 'babel',
query: {
presets: ['es2015', 'react']
} //將react編譯成js文件
},
{ test: /\.css$/, loader: 'style-loader!css-loader' },
//打包css文件
{ test: /\.scss$/, loader: 'style!css!sass?sourceMap'},
//編譯sass文件
{ test: /\.(png|jpg)$/, loader: 'url-loader?limit=8192'}
//對圖片進行打包
]
},
plugins: [
new webpack.HotModuleReplacementPlugin()
],
resolve: {
//自動擴展文件后綴名
extensions: ['', '.js', '.json', '.scss', '.ts']
}
};
main.js內(nèi)容如下:
let React = require('react');
let ReactDOM = require('react-dom');
let AppComponent = require('./components/index.js');
ReactDOM.render(<AppComponent />, document.getElementById('content'));
index.js內(nèi)容如下:
var React = require('react');
var ProductBox;
ProductBox = React.createClass({
render: function () {
return (
<div className="productBox">
hello react&es2015&webpack!!!
</div>
);
}
});
module.exports = ProductBox;
index.html內(nèi)容如下:
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>React Project</title> </head> <body> <script src="http://localhost:8080/webpack-dev-server.js"></script> <div id="content"></div> <script src="./bundle.js"></script> </body> </html>
將上面的文件寫好后并放到對應文件夾內(nèi)運行命令npm run build dev,成功后瀏覽器訪問地址location:8080,就會顯示出對應界面
結果:
hello react&es2015&webpack!!!
以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!
- windows下vue-cli及webpack搭建安裝環(huán)境
- vue+node+webpack環(huán)境搭建教程
- 詳解webpack+angular2開發(fā)環(huán)境搭建
- 詳解基于webpack搭建react運行環(huán)境
- karma+webpack搭建vue單元測試環(huán)境的方法示例
- 詳解webpack與SPA實踐之開發(fā)環(huán)境搭建
- webpack 2.x配置reactjs基本開發(fā)環(huán)境詳解
- 淺談Webpack下多環(huán)境配置的思路
- 詳解webpack4多入口、多頁面項目構建案例
- 如何用webpack4帶你實現(xiàn)一個vue的打包的項目
- webpack4.x開發(fā)環(huán)境配置詳解
相關文章
React?Native?中處理?Android?手機吞字的解決方案
這篇文章主要介紹了React?Native?中處理?Android?手機吞字的解決方案,作者在 React Native 0.67.4 環(huán)境下,編寫了一個小 demo 來復現(xiàn)這個問題,需要的朋友可以參考下2022-08-08
react實現(xiàn)一個優(yōu)雅的圖片占位模塊組件詳解
這篇文章主要給大家介紹了關于react如何實現(xiàn)一個還算優(yōu)雅的占位模塊圖片組件的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。2017-10-10

