一個模塊打包器,將根據模塊的依賴關係進行靜態分析,而後將這些模塊按照指定的規則生成對應的靜態資源。javascript
自己只能打包js模塊,自帶BGM如虎添翼(Loader轉換器)【將各類類型的資源轉換成js模塊】java
安裝node
$ npm intsall webpack -g
在項目文件中安裝webpack依賴webpack
#進入安裝目錄 #肯定已經有package.json,沒有的話就經過npm init 建立 #安裝webpack依賴 $npm install webpack --save-dev
查看版本信息git
#查看安裝的版本信息 $npm info webpack #安裝穩定版本 $npm install webpack@1.12.0 --save-dev
新建文件並使用github
打包web
$ webpack entry.js bundle.js
webpack會分析每一個入口文件,解析包依賴關係的各個文件,每一個模塊都打包到bundle.js。webpack給每一個模塊分配一個惟一的ID並經過這個ID索引和訪問模塊。頁面運行時,先啓動entry.js,其餘模塊會在運行require時候執行。npm
Bowser:給模塊的安裝、升級、刪除提供一個統一的、可維護的管理模式json
Browserify:讓服務器端CommonJS 運行在瀏覽器端瀏覽器
Component:將網頁所須要的全部資源(腳本、圖片、樣式表)編譯後放在同一個目錄下
Duo:站在巨人的肩膀上(拜師於Component,集Bowser和Browserify大成者),傲視羣雄
一種任務管理器(自動化任務處理工具),基於nodejs,可實現跨系統跨平臺的桌面端操做。
安裝:
npm install -g grunt-cli
package.json-----定義了項目中的數據,好比項目名,項目的依賴關係。
{ "name": "project-nam", "version": "0.4.5", "description": "學習 grunt", "author": "Xingwucheng", "devDependencies": { "temporary": "~0.0.4", "grunt-contrib-jshint": "~0.6.4", "grunt-contrib-nodeunit": "~0.2.0", "grunt-contrib-watch": "~0.5.3", "difflet": "~0.2.3", "senver": "~2.1.0", } }
Gruntfile.js -------定義和配置在Grunt中運行的任務
module.exports = function(grunt) { //項目配置 grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), uglify: { options: { banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n' }, build: { src: 'src/<%= pkg.name %>.js', dest: 'build/<%= pkg.name %>.min.js' } } }); //加載grunt插件 grunt.loadNpmTasks('grunt-contrib-uglify'); // 註冊grunt默認任務. grunt.registerTask('default', ['uglify']); };