国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

新人學(xué)習(xí),照文檔手?jǐn)]webpack,bug基本修復(fù)完善(有問(wèn)題請(qǐng)聯(lián)系我,并非完全原創(chuàng),不喜勿噴。。。

xiangchaobin / 450人閱讀

摘要:介紹簡(jiǎn)單點(diǎn)來(lái)說(shuō)就就是一個(gè)配置文件,所有的魔力都是在這一個(gè)文件中發(fā)生的。一安裝全局安裝在文件夾里面也需要安裝這個(gè)是在你根目錄下進(jìn)行的全局安裝記得加太慢,推薦用的鏡像安裝方法一樣。二創(chuàng)建項(xiàng)目新建文件夾命令行輸入命令。

介紹:
webpack簡(jiǎn)單點(diǎn)來(lái)說(shuō)就就是一個(gè)配置文件,所有的魔力都是在這一個(gè)文件中發(fā)生的。 這個(gè)配置文件主要分為三大塊

entry 入口文件 讓webpack用哪個(gè)文件作為項(xiàng)目的入口
output 出口 讓webpack把處理完成的文件放在哪里
module 模塊 要用什么不同的模塊來(lái)處理各種類型的文件
下面我們就一步一步來(lái)新建一個(gè)簡(jiǎn)單的項(xiàng)目,話不多講,該懂的自行百度,這里只負(fù)責(zé)讓你自己的webpack跑起來(lái)。

(一)安裝
全局安裝webpack

   npm install -g webpack

在文件夾里面也需要安裝webpack

npm install webpack

這個(gè)是在你根目錄下進(jìn)行的全局安裝記得加-g,npm 太慢,推薦用npm的鏡像cnpm 安裝方法一樣。

(二)創(chuàng)建項(xiàng)目
新建文件夾命令行輸入命令。 輸入npm init后一路回車,看需要自己更改

cd study-webpack
npm init
{
  "name": "study-webpack2.0",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo "Error: no test specified" && exit 1"
  },
  "author": "",
  "license": "ISC"
}

此時(shí)會(huì)生成一個(gè)package.json 然后

npm install

安裝基本依賴的模板

(三)建立項(xiàng)目基本目錄結(jié)構(gòu)
現(xiàn)在項(xiàng)目里面就有一個(gè)package.json, 我們多加一點(diǎn)東西,慢慢豐富它的內(nèi)容。

/app
    index.js
    sub.js
package.json
webpack.config.js

添加了兩個(gè)js文件,添加了最重要的webpack的配置文件,我們還是從非常簡(jiǎn)單的hello world開始玩起,webpack原生直接支持AMD和CommonJS兩種格式

JS代碼

sub.js

//我們這里使用CommonJS的風(fēng)格
function generateText() {
  var element = document.createElement("h2");
  element.innerHTML = "Hello h2 world";
  return element;
}

module.exports = generateText;

index.js

var sub = require("./sub");
var app  = document.createElement("div");
app.innerHTML = "

Hello World

"; app.appendChild(sub()); document.body.appendChild(app);

代碼寫完了,完成一個(gè)很簡(jiǎn)單的功能,新建一個(gè)多帶帶的module,并且在另外一個(gè)module里面引用他,最后會(huì)在頁(yè)面里面輸出兩個(gè)標(biāo)題。

配置webpack

現(xiàn)在開始配置webpack,目標(biāo)是把這兩個(gè)js文件合并成一個(gè)文件. 我們可以自己在build文件夾里面手動(dòng)建一個(gè)index.html文件夾,然后再把合并以后的js引用在里面,但是這樣有些麻煩,所以我們這里安裝一個(gè)plugin,可以自動(dòng)快速的幫我們生成HTML。

npm install html-webpack-plugin --save-dev

在有了這個(gè)插件的前提下 開始寫webpack.config.js文件

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 = {
  //項(xiàng)目的文件夾 可以直接用文件夾名稱 默認(rèn)會(huì)找index.js 也可以確定是哪個(gè)文件名字
  entry: APP_PATH,
  //輸出的文件名 合并以后的js會(huì)命名為bundle.js
  output: {
    path: BUILD_PATH,
    filename: "bundle.js"
  },
  //添加我們的插件 會(huì)自動(dòng)生成一個(gè)html文件
  plugins: [
    new HtmlwebpackPlugin({
      title: "Hello World app"
    })
  ]
};

然后在項(xiàng)目根目錄運(yùn)行指令,此時(shí)會(huì)生成一個(gè)build文件夾里面有bundle.js和index.html

webpack  //這個(gè)是命令行命令

配置webpack-dev-server

上面任務(wù)雖然完成了,但是我們要不斷運(yùn)行程序然后查看頁(yè)面,所以最好新建一個(gè)開發(fā)服務(wù)器,可以serve我們pack以后的代碼,并且當(dāng)代碼更新的時(shí)候自動(dòng)刷新瀏覽器。

安裝webpack-dev-server

npm install webpack-dev-server --save-dev

安裝完畢后 在webpack.config.js中添加配置

module.exports = {
  ....
  devServer: {
    historyApiFallback: true,
    hot: true,
    inline: true
  },
  ...

}
然后再package.json里面配置一下運(yùn)行的命令,npm支持自定義一些命令

...
"scripts": {
  "start": "webpack-dev-server --hot --inline"
},
...

好了,萬(wàn)事具備了,在項(xiàng)目根目錄下輸入npm start,一堆花花綠綠的信息后server已經(jīng)起來(lái)了,在瀏覽器里面輸入http://localhost:8080 發(fā)現(xiàn)偉大的hello world出現(xiàn)了,在js里面隨便修改一些輸出然后保存, boom!瀏覽器自動(dòng)刷新,新的結(jié)果出現(xiàn)了。

關(guān)于一些文件依賴解釋:

紅色框框內(nèi)的東西是你運(yùn)行一些文件所需要的配置,記得得在webpack.config.js里面的module下加哦,比如你需要使用sass

{
  test: /.scss$/,
  loaders: ["style-loader","css-loader","sass-loader"],
  include: APP_PATH
},


命令行得安裝這些相對(duì)應(yīng)的模板 npm install style-loader css-loader sass-loader --save-dev也可以分開寫


提醒:要使用es6必須全局安裝babel-core;使用sass也必須全局安裝sass,先裝ruby;

拓展

下面附上完整項(xiàng)目截圖代碼(es6):

項(xiàng)目目錄

npm-debug.log 是調(diào)試日志文件,報(bào)錯(cuò)可以參考這個(gè)文件改錯(cuò)

index.js

import "./main.css";
import "./main.scss";

import generateText from "./sub";
import $ from "jquery";
import moment from "moment";

let app = document.createElement("div");
const myPromise = Promise.resolve(42);
myPromise.then((number) => {
  $("body").append("

look at me! now is " + number + " now is " + moment().format() + "

") }) app.innerHTML = "

Hello World!!

"; document.body.appendChild(app); app.appendChild(generateText());

sub.js

export default function() {
  var element = document.createElement("h2");
  element.innerHTML = "Hello h2 world hahaha";
  return element;
}

main.css

main.scss

variables.scss

build 文件夾下的東西會(huì)自動(dòng)生成,我就不放過(guò)來(lái)了

package.json

{
  "name": "aaa",
  "version": "1.0.0",
  "description": "",
  "main": "webpack.config.js",
  "scripts": {
    "test": "echo "Error: no test specified" && exit 1",
    "start": "webpack-dev-server --hot --inline"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "babel-loader": "^6.3.2",
    "babel-preset-es2015": "^6.22.0",
    "css-loader": "^0.26.2",
    "file-loader": "^0.10.1",
    "html-webpack-plugin": "^2.28.0",
    "jquery": "^3.1.1",
    "moment": "^2.17.1",
    "node-sass": "^4.5.0",
    "sass-loader": "^6.0.2",
    "style-loader": "^0.13.2",
    "url-loader": "^0.5.8",
    "webpack": "^2.2.1",
    "webpack-dev-server": "^2.4.1"
  }
}

webpack.config.js

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 = {
  //項(xiàng)目的文件夾 可以直接用文件夾名稱 默認(rèn)會(huì)找index.js 也可以確定是哪個(gè)文件名字
  entry: APP_PATH,
  //輸出的文件名 合并以后的js會(huì)命名為bundle.js
  output: {
    path: BUILD_PATH,
    filename: "bundle.js"
  },
  //添加我們的插件 會(huì)自動(dòng)生成一個(gè)html文件
  plugins: [
    new HtmlwebpackPlugin({
      title: "Hello World app"
    })
  ],
  devServer: {//webpack-dev-server的配置
    historyApiFallback: true,
    hot: true,
    inline: true
  },
  module: {
    loaders: [
      {
        test: /.css$/,
        loaders: ["style-loader","css-loader"],
        include: APP_PATH
      },
      {
        test: /.scss$/,
        loaders: ["style-loader","css-loader","sass-loader"],
        include: APP_PATH
      },
      {
        test: /.(png|jpg)$/,
        loader: ["url-loader?limit=40000"]
      },
      {
        test: /.jsx?$/,
        loader: "babel-loader",
        include: APP_PATH,
        query: {
          presets: ["es2015"]
        }
      }
    ]
  }
};

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/86840.html

相關(guān)文章

  • 學(xué)不動(dòng)了?可能方法不太對(duì)-Grid 網(wǎng)格布局

    摘要:前情提要本人是一個(gè)學(xué)渣非科班入行年了吧前端東西真的好多啊又不斷更新需要不斷的學(xué)學(xué)學(xué)在去年年底開始我就開始不斷的尋找學(xué)習(xí)的方法如何更加高效的學(xué)習(xí)如何才能學(xué)的又快又好在這半年來(lái)不斷的總結(jié)慢慢找到了一些方法和訣竅此文章不是網(wǎng)格布局的教學(xué)文章只前情提要 ??本人是一個(gè)學(xué)渣,非科班入行2年了吧,前端東西真的好多啊,又不斷更新.需要不斷的學(xué)學(xué)學(xué), showImg(https://user-gold-c...

    happyfish 評(píng)論0 收藏0
  • Nodejs爬蟲實(shí)戰(zhàn)項(xiàng)目之鏈家

    摘要:很基礎(chǔ),不喜勿噴轉(zhuǎn)載注明出處爬蟲實(shí)戰(zhàn)項(xiàng)目之鏈家效果圖思路爬蟲究竟是怎么實(shí)現(xiàn)的通過(guò)訪問(wèn)要爬取的網(wǎng)站地址,獲得該頁(yè)面的文檔內(nèi)容,找到我們需要保存的數(shù)據(jù),進(jìn)一步查看數(shù)據(jù)所在的元素節(jié)點(diǎn),他們?cè)谀撤矫嬉欢ㄊ怯幸?guī)律的,遵循規(guī)律,操作,保存數(shù)據(jù)。 說(shuō)明 作為一個(gè)前端界的小學(xué)生,一直想著自己做一些項(xiàng)目向全棧努力。愁人的是沒有后臺(tái),搜羅之后且學(xué)會(huì)了nodejs和express寫成本地的接口給前端頁(yè)面調(diào)用...

    noONE 評(píng)論0 收藏0
  • Nodejs爬蟲實(shí)戰(zhàn)項(xiàng)目之鏈家

    摘要:很基礎(chǔ),不喜勿噴轉(zhuǎn)載注明出處爬蟲實(shí)戰(zhàn)項(xiàng)目之鏈家效果圖思路爬蟲究竟是怎么實(shí)現(xiàn)的通過(guò)訪問(wèn)要爬取的網(wǎng)站地址,獲得該頁(yè)面的文檔內(nèi)容,找到我們需要保存的數(shù)據(jù),進(jìn)一步查看數(shù)據(jù)所在的元素節(jié)點(diǎn),他們?cè)谀撤矫嬉欢ㄊ怯幸?guī)律的,遵循規(guī)律,操作,保存數(shù)據(jù)。 說(shuō)明 作為一個(gè)前端界的小學(xué)生,一直想著自己做一些項(xiàng)目向全棧努力。愁人的是沒有后臺(tái),搜羅之后且學(xué)會(huì)了nodejs和express寫成本地的接口給前端頁(yè)面調(diào)用...

    MartinDai 評(píng)論0 收藏0
  • 關(guān)于IOS測(cè)試

    摘要:由于測(cè)試環(huán)境中的數(shù)據(jù)為模擬數(shù)據(jù),測(cè)試時(shí)必須預(yù)先考慮到正式環(huán)境中可能出現(xiàn)的數(shù)據(jù)類型。并在之后的測(cè)試報(bào)告中予以體現(xiàn)。只有在回歸測(cè)試通過(guò)之后,才對(duì)產(chǎn)品進(jìn)行提交。測(cè)試工具歸納是蘋果自帶的工具,肯定比較好用。 前言: 最近跟很多同行討論過(guò),現(xiàn)在也想和大家聊聊,我這里還有一些APP測(cè)試的具體指標(biāo),希望通過(guò)自己很有限的經(jīng)驗(yàn)幫助大家。內(nèi)容中部分是可以百度到,部分是我自己的一些看法,歡迎大家補(bǔ)充。201...

    SmallBoyO 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<