Linux下用webpack搭建項目框架

最近在用 webpack 搭建項目基礎(chǔ)框架粱玲,以下就是搭建步驟:
注意:本次搭建是基于Node.js的病曾,想要安裝Node.js的小伙伴可以參考這里

安裝webpack

  • 生成package.json文件
    npm init -y

  • 生成.gitignore文件
    gi node,ubuntu,WebStoem >> .gitignore
    gi是自動生成.gitignore的工具耸携,可以自己手動書寫.gitignore文件恋追,想要安裝gi的小伙伴可以點擊這里安裝

  • 下載webpack并添加依賴
    npm install webpack --save-dev

  • 檢驗是否安裝成功

    • 添加 entry.js文件
      document.write("It works.");
    • 添加index.html文件
    <html>
      <head>
          <meta charset="utf-8">
      </head>
      <body>
          <script type="text/javascript" src="bundle.js" charset="utf-8"></script>
      </body>
    

</html>

> - 運行命令:
`webpack ./entry.js bundle.js`
>運行`index.html`伴鳖,出現(xiàn)下面頁面則說明安裝成功婴削。


![index.png](http://upload-images.jianshu.io/upload_images/3126454-626c061ef674d023.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

- 下載樣式加載器

npm install css-loader --save
npm install style-loader --save

- 添加`style.css`

body {
background: pink;
}


- 修改`entry.js`文件

require("./style.css");
document.write("It works.");

- 添加`webpack.config.js`文件

module.exports = {
entry: "./entry.js",
output: {
path: __dirname,
filename: "bundle.js"
},
module: {
loaders: [
{ test: /.css$/, loader: "style-loader!css-loader" }
]
}
};

- 運行`webpack`,如果頁面樣式正常顯示,則證明安裝成功隙券。
- 為`package.json`添加以下語句

"scripts": {
"webpack":"webpack -d --watch"
}

- 運行`npm run webpack`,這樣webpack可以對文件自動打包男应。

###搭建服務(wù)器(express)
- 本地下載安裝express
`npm install express --save`
- 添加`server.js`文件

var express = require('express');
var app = express();
app.get('/', function(req, res){
res.send('hello world');
});
app.listen(3000, function () {
console.log('Example app listening at port 3000:');
})

- 運行`npm start`,訪問`localhost:3000`,頁面上顯示`hello world`,則說明服務(wù)器搭建成功娱仔。
- 修改`package.json`文件

scripts": {
"start":"nodemon server.js"
}

- 運行`npm start`沐飘,服務(wù)器就可以自啟動。
- 修改`server.js`文件

var express = require('express');
var app = express();
app.use(express.static('./'));
app.listen(3000, function () {
console.log('Example app listening at port 3000:');
})

- 執(zhí)行下列命令:

npm run webpack
npm start

訪問`localhost:3000`,若頁面上正常顯示牲迫,則說明搭建成功耐朴。

###安裝其他依賴
- 安裝`eslint`

npm install -g eslint
eslint --init
eslint yourfile.js

- 安裝babel

npm install babel-loader --save
npm install babel-core --save
npm install babel-preset-es2015 --save
npm install babel-preset-react

- 添加`.babelrc`文件

{
"presets": [
"es2015",
"react"
]
}

- 下載`file-loader`和`url-loader`

npm install file-loader --save
npm install url-loader --save

- 修改`webpack.config.js`文件

module: {
loaders: [
{ test: /.css$/, loader: "style-loader!css-loader" },
{
test: /.(jpe?g|png|gif|svg)$/i,
loaders: [
'url?limit=10000&name=img/[hash:8].[name].[ext]', // 圖片小于8k就轉(zhuǎn)化為 base64, 或者單獨作為文件
'image-webpack' // 圖片壓縮
]
},
{
test: /.(jpe?g|png|gif|svg)$/i,
loaders: ['file?hash=sha512&digest=hex&name=[hash].[ext]']// 生成 md5 hash 格式的文件名'image-webpack' // 圖片壓縮
}

      ]
  }
- 下載`path`
`npm install path --save`
- 修改`webpack.config.js`文件

var path=require("path");
module.exports = {
entry: "./public/js/entry.js",
output: {
path: path.join(__dirname,"public/dist"),
filename: "bundle.js"
},

- 執(zhí)行下列命令

npm install react --save
npm install react-dom --save

- 修改`webpack.config.json`文件

var path=require("path");
module.exports = {
entry: "./public/js/main.js",
output: {
path: path.join(__dirname,"public/dist"),
filename: "bundle.js"
},
module: {
loaders: [
{ test: /.css$/, loader: "style-loader!css-loader" },
{
test: /.(jpe?g|png|gif|svg)$/i,
loaders: [
'url?limit=10000&name=img/[hash:8].[name].[ext]', // 圖片小于8k就轉(zhuǎn)化為 base64, 或者單獨作為文件
'image-webpack' // 圖片壓縮
]
},
{
test: /.(jpe?g|png|gif|svg)$/i,
loaders: ['file?hash=sha512&digest=hex&name=[hash].[ext]']// 生成 md5 hash 格式的文件名'image-webpack' // 圖片壓縮
},
{
test: /.jsx?$/,
loader: 'babel-loader',
exclude: /node_modules/,
query: {
cacheDirectory: true,
presets: ['react', 'es2015']
}
}
]
}
};

- 修改`entry.js`文件

require("./../css/style.css");
import React, {Component} from 'react';
import {render} from "react-dom";
class HelloMessage extends React.Component {
render() {
return <div>Hello</div>;
}
}
render(<HelloMessage/>, document.getElementById('app'));

- 修改`index.html`文件
`<div id="app"></div>`
- 啟動服務(wù)器和 webpack,訪問`localhost:3000`,如果出現(xiàn)下列頁面,則證明項目搭建成功盹憎。

![index.png](http://upload-images.jianshu.io/upload_images/3126454-b4b57dcbaba3438a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
項目目錄結(jié)構(gòu)如下:
![directory.png](http://upload-images.jianshu.io/upload_images/3126454-ae1d7a456ef836ed.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
源碼[點這里](https://github.com/yhl221/build-webpack)

參考資料:
- webpack
https://github.com/chenbin92/react-redux-webpack-starter/issues/1
http://www.pro-react.com/materials/appendixA/
http://webpack.github.io/docs/tutorials/getting-started/
- 淺析 NodeJs 的幾種文件路徑
https://github.com/imsobear/blog/issues/48
- 配置文檔自啟動
https://www.zybuluo.com/yangfch3/note/249328#0-npm-run-npm-run-script
- eslint
http://eslint.org/docs/user-guide/getting-started
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末筛峭,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子陪每,更是在濱河造成了極大的恐慌影晓,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件檩禾,死亡現(xiàn)場離奇詭異挂签,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)盼产,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進(jìn)店門饵婆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人戏售,你說我怎么就攤上這事侨核。” “怎么了蜈项?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長续挟。 經(jīng)常有香客問我紧卒,道長,這世上最難降的妖魔是什么诗祸? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任跑芳,我火速辦了婚禮轴总,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘博个。我一直安慰自己怀樟,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布盆佣。 她就那樣靜靜地躺著往堡,像睡著了一般。 火紅的嫁衣襯著肌膚如雪共耍。 梳的紋絲不亂的頭發(fā)上虑灰,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天,我揣著相機(jī)與錄音痹兜,去河邊找鬼穆咐。 笑死,一個胖子當(dāng)著我的面吹牛字旭,可吹牛的內(nèi)容都是我干的对湃。 我是一名探鬼主播,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼遗淳,長吁一口氣:“原來是場噩夢啊……” “哼拍柒!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起洲脂,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤斤儿,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后恐锦,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體往果,經(jīng)...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年一铅,在試婚紗的時候發(fā)現(xiàn)自己被綠了陕贮。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,716評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡潘飘,死狀恐怖肮之,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情卜录,我是刑警寧澤戈擒,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站艰毒,受9級特大地震影響筐高,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一柑土、第九天 我趴在偏房一處隱蔽的房頂上張望蜀肘。 院中可真熱鬧,春花似錦稽屏、人聲如沸扮宠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽坛增。三九已至,卻和暖如春荒叼,著一層夾襖步出監(jiān)牢的瞬間轿偎,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工被廓, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留坏晦,地道東北人。 一個月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓嫁乘,卻偏偏與公主長得像昆婿,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子蜓斧,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,612評論 2 350

推薦閱讀更多精彩內(nèi)容