亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

使用webpack打包你的Project

2bdenny / 1855人閱讀

摘要:說(shuō)明代碼拆分有兩種組織模塊依賴的方式,同步和異步。在優(yōu)化了依賴樹后,每一個(gè)異步區(qū)塊都作為一個(gè)文件被打包。甚至在加載依賴的時(shí)候,允許使用動(dòng)態(tài)表達(dá)式??焖龠\(yùn)行使用異步和多級(jí)緩存提高運(yùn)行效率,這使得能夠以令人難以置信的速度快速增量編譯。

webpack 說(shuō)明

代碼拆分:Webpack 有兩種組織模塊依賴的方式,同步和異步。異步依賴作為分割點(diǎn),形成一個(gè)新的塊。在優(yōu)化了依賴樹后,每一個(gè)異步區(qū)塊都作為一個(gè)文件被打包。

Loader:Webpack 本身只能處理原生的 JavaScript 模塊,但是 loader 轉(zhuǎn)換器可以將各種類型的資源轉(zhuǎn)換成 JavaScript 模塊。這樣,任何資源都可以成為 Webpack 可以處理的模塊。

智能解析:Webpack 有一個(gè)智能解析器,幾乎可以處理任何第三方庫(kù),無(wú)論它們的模塊形式是 CommonJS、 AMD 還是普通的 JS 文件。甚至在加載依賴的時(shí)候,允許使用動(dòng)態(tài)表達(dá)式 require("./templates/" + name + ".jade")。

插件系統(tǒng):Webpack 還有一個(gè)功能豐富的插件系統(tǒng)。大多數(shù)內(nèi)容功能都是基于這個(gè)插件系統(tǒng)運(yùn)行的,還可以開發(fā)和使用開源的 Webpack 插件,來(lái)滿足各式各樣的需求。

快速運(yùn)行:Webpack 使用異步 I/O 和多級(jí)緩存提高運(yùn)行效率,這使得 Webpack 能夠以令人難以置信的速度快速增量編譯。

安裝

Global: npm install webpack -g

編譯

執(zhí)行 webpack ,編譯入口文件 entry.js 并打包到 bundle.js, webpack entry.js bundle.js

編譯配置文件 webpack.config.js,去配置 entry.js 文件和 bundle.js 文件路徑

var webpack = require("webpack")

module.exports = {
  entry: "./entry.js",
  output: {
    path: __dirname,
    filename: "bundle.js"
  }
}
Library

初始化項(xiàng)目 npm init生成 package.js

安裝jquery依賴 npm install --save-dev

Loader

安裝loader npm instal css-loader style-loader -save-dev

修改配置文件模塊 module

安裝Babel 包, Babel 是編寫下一代 JavaScript 的編譯器。這個(gè)包允許使用 Babel 和 webpack 轉(zhuǎn)換 JavaScript 文件

babel-loader配置

安裝命令 npm install babel-loader babel-core babel-preset-es2015 babel-plugin-transform-runtime babel-preset-stage-0 --save-dev

在 webpack.config.js 里配置 babel

排除匹配文件夾可提高執(zhí)行速度,多個(gè)文件夾寫法 exclude: /(node_modules|bower_components)/,

babel: {
    presets: ["es2015", "stage-0"],
    plugins: ["transform-runtime"]
}

//或者放在 .babelrc文件中
{
    presets: ["es2015", "stage-0"],
    plugins: ["transform-runtime"]
}
var webpack = require("webpack");

module.exports = {
  entry: "./entry.js",
  output: {
    path: __dirname,
    filename: "bundle.js"
  },
  module:{
    loaders: [
        {
            test: /.css$/,
            loader: "style-loader!css-loader"
        },
        {
          test: /.js$/,
          loader: "babel-loader",
          exclude:/node_modules/,
          query: {
            presets: ["es2015", "stage-0"],
            plugins: ["transform-runtime"]
          }
        }
    ]
  }
}
結(jié)合vue進(jìn)行組件化開發(fā)

安裝 vue 組件 npm install vue vue-loader vue-html-loader vue-style-loader --save-dev

在 webpack.config.js 中引入 vue-loader

需要實(shí)時(shí)編譯模板,而非使用自帶的 runtime-only,需要引入如下配置

var webpack = require("webpack");

module.exports = {
  entry: "./entry.js",
  output: {
    path: __dirname,
    filename: "bundle.js"
  },
  module:{
    loaders: [
        {
            test: /.css$/,
            loader: "style-loader!css-loader"
        },
        {
          test: /.js$/,
          loader: "babel-loader",
          exclude:/node_modules/,
          query: {
            presets: ["es2015", "stage-0"],
            plugins: ["transform-runtime"]
          }
        },
        {
          test: /.vue$/,
          loader: "vue-loader"
        }
    ]
  },
  resolve: {
    alias: {
      "vue$": "vue/dist/vue.esm.js" // "vue/dist/vue.common.js" for webpack 1
    }
  }
}
命令

webpack --display-modules

webpack --display-modules --display-reasons

webpack -d devtools

webpack -p 執(zhí)行優(yōu)化文件壓縮

webpack -w 后臺(tái)監(jiān)控代碼修改自動(dòng)執(zhí)行 webpack

webpack-dev-server

全局安裝 npm install webpack-dev-server -g

執(zhí)行 webpack-dev-server --inline --hot

配置文件和插件

區(qū)分線上和線下的變量 debug = process.env.NODE_ENV !== "production";

修改配置文件如下

生成 json 文件 webpack -- profile --json > demo.js,使用 webpack-analyse上傳你的json文件進(jìn)行分析,或者推薦使用另外一種比較不錯(cuò)的插件 webpack-visualizer

//是否生成sourcemap
//線上引用插件相關(guān) https://github.com/webpack/docs/wiki/list-of-plugins
{
    debug = process.env.NODE_ENV !== "production
    "devtools": debug ? "sourcemap" : null,
    "plugins": debug ? [] : [
        new webpack.optimize.DedupePlugin(),
        new webpack.optimize.OccurenceOrderPlugin(),
        new webpack.optimize.UgifyJsPlugin({mangle: false, sourcemap: false}),
    ]
}

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/83267.html

相關(guān)文章

  • webpack2兼容IE8以下代碼

    摘要:可用編譯低版本代碼水有多深不得而知啟動(dòng)新技術(shù)提供測(cè)試框架進(jìn)行單元測(cè)試,代碼覆蓋率報(bào)告,可與和快速對(duì)接。頁(yè)面的其他資源文件,通過(guò)引入單元測(cè)試項(xiàng)目啟動(dòng)環(huán)境配置為了把保證項(xiàng)目正常運(yùn)行,請(qǐng)自行更新相關(guān)環(huán)境。 項(xiàng)目地址:https://github.com/sayll/ie-webpack-start ie-webpack-start showImg(https://segmentfault....

    StonePanda 評(píng)論0 收藏0
  • webpack的教程

    摘要:有時(shí)候覺得一個(gè)工具的學(xué)習(xí)成本還是很大的,所以唯一的感覺就是隨隨便便放棄一個(gè)工具是多么的難。指定執(zhí)行的方法命令。這時(shí)候我們?cè)倏匆幌履夸洉?huì)多出來(lái)一個(gè)目錄說(shuō)明你的處女終于破了。 嘮嘮嗑 ?前幾天在學(xué)習(xí)webpack時(shí),踩過(guò)很多坑,也聽過(guò)webapck是多么的嗶嗶嗶嗶~~, 本人學(xué)習(xí)的工具有很多,比如sass的初級(jí)工具compass,自動(dòng)化工具gulp,grunt,一起其他雜七雜八的工具。有時(shí)...

    Zhuxy 評(píng)論0 收藏0
  • Webpack vs Rollup

    摘要:年月份的時(shí)候,將的構(gòu)建工具換成了。的特點(diǎn)代碼分割有兩種組織模塊依賴的方式,同步和異步。而目前在中大型項(xiàng)目中使用得非常廣泛。更多網(wǎng)易技術(shù)產(chǎn)品運(yùn)營(yíng)經(jīng)驗(yàn)分享請(qǐng)?jiān)L問(wèn)網(wǎng)易云社區(qū)。文章來(lái)源網(wǎng)易云社區(qū) 本文由作者余伯賢授權(quán)網(wǎng)易云社區(qū)發(fā)布。 2017年4月份的時(shí)候,F(xiàn)acebook將React的構(gòu)建工具換成了Rollup。很多人就有疑問(wèn)了,Webpack不也是Facebook團(tuán)隊(duì)開發(fā)的嗎,為什么不使用...

    Null 評(píng)論0 收藏0
  • 2018年第33周-javeer對(duì)nodejs體會(huì)

    摘要:流程源處理源代碼,例如過(guò)濾任何值。工藝類從編譯后處理生成的文件,例如對(duì)類進(jìn)行字節(jié)碼增強(qiáng)。整合后的測(cè)試執(zhí)行集成測(cè)試后執(zhí)行所需的操作。校驗(yàn)運(yùn)行任何檢查以驗(yàn)證包裝是否有效并符合質(zhì)量標(biāo)準(zhǔn)。 nodejs和es6 nodejs的語(yǔ)法和es6不一樣,如模塊系統(tǒng),一個(gè)是CommonJS的require、一個(gè)是es6的import,寫模塊也不一樣。 nodejs的npm 我來(lái)理解,nodejs類似與j...

    xiongzenghui 評(píng)論0 收藏0
  • Vue 筆記三:Vue2.0與1.0的區(qū)別

    摘要:升級(jí)的區(qū)別與的斷層式升級(jí)不同,延續(xù)了自己的風(fēng)格。在命名方式和上有一些區(qū)別,掌握它們是你升級(jí)整個(gè)項(xiàng)目的關(guān)鍵。以下內(nèi)容都是來(lái)源于個(gè)人項(xiàng)目的一些經(jīng)驗(yàn)之談,并非系統(tǒng)性的闡述??偰夸浨岸私?jīng)驗(yàn)收集器轉(zhuǎn)載自個(gè)人建了前端學(xué)習(xí)群,旨在一起學(xué)習(xí)前端。 升級(jí)的區(qū)別 與angular的斷層式升級(jí)不同,vue延續(xù)了自己的風(fēng)格。在命名方式和API上有一些區(qū)別,掌握它們是你升級(jí)整個(gè)項(xiàng)目的關(guān)鍵。以下內(nèi)容都是來(lái)源于個(gè)人...

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

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

0條評(píng)論

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