最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

seajs模塊壓縮問題與解決方法實例分析

 更新時間:2017年10月10日 10:06:52   作者:jinphen  
這篇文章主要介紹了seajs模塊壓縮問題與解決方法,結合實例形式分析了seajs模塊壓縮過程中出現(xiàn)的問題及相應的解決方法,需要的朋友可以參考下

本文實例講述了seajs模塊壓縮問題與解決方法。分享給大家供大家參考,具體如下:

在優(yōu)化整理項目代碼時,想使用seajs來把代碼模塊化??戳讼鹿俜?分鐘上手教程,覺得很不錯,也沒多想就一直開發(fā)下去了,也沒出什么問題。等一同事說把代碼打包個放到設備上去測試一下,發(fā)現(xiàn)怎么也跑不起來,郁悶了。

于是單步調(diào)試一把,發(fā)現(xiàn)模塊一直加不進來。看了一下seajs的原碼,明白了是怎么回事。

define模塊解析依賴有兩種途徑,一種是從define(id, deps, factory)中的deps來;還有一種是解析define代碼,從require中來。來看一下代碼:

Module.define = function (id, deps, factory) {
 var argsLen = arguments.length
 // define(factory)
 if (argsLen === 1) {
  factory = id
  id = undefined
 }
 else if (argsLen === 2) {
  factory = deps
  // define(deps, factory)
  if (isArray(id)) {
   deps = id
   id = undefined
  }
  // define(id, factory)
  else {
   deps = undefined
  }
 }
 // Parse dependencies according to the module factory code
 if (!isArray(deps) && isFunction(factory)) {
  deps = parseDependencies(factory.toString())
 }
 ...

如果傳了deps那就不進行解析了,如果傳那就進行源碼解析:

var REQUIRE_RE = /"(?:\\"|[^"])*"|'(?:\\'|[^'])*'|\/\*[\S\s]*?\*\/|\/(?:\\\/|[^\/\r\n])+\/(?=[^\/])|\/\/.*|\.\s*require|(?:^|[^$])\brequire\s*\(\s*(["'])(.+?)\1\s*\)/g
var SLASH_RE = /\\\\/g
function parseDependencies(code) {
 var ret = []
 code.replace(SLASH_RE, "")
   .replace(REQUIRE_RE, function(m, m1, m2) {
    if (m2) {
     ret.push(m2)
    }
   })
 return ret
}

seajs是對源碼正則對比,查找require,也就是說require在seajs模塊中,是一個關鍵字。

那么問題就來了,一般我們使用的壓縮工具都變量進行壓縮,require不是標準的js關鍵字,所以經(jīng)過一壓縮require就變成了abcdefg....所以自然就無法使用了。

解析辦法有兩個:

1. seajs官方給出是seajs標準模塊構建工具:https://github.com/seajs/seajs/issues/538 使用spm進行構建。

2. 更換壓縮工具,使用一個可以自定義關鍵字,也就是讓壓縮工具不壓縮require變量。

目前主流的三個壓縮工具:YUI Compressor,Google Closure Compiler,UglifyJS。就目前所知,貌似前兩個都不支持自定義關鍵字(?),UglifyJS是支持的。所以可以使用UglifyJS進行壓縮

UglifyJS hello.js -o hello.min.js -m -c -r require

通過-r選項來指定變量不壓縮。

總的來說使用seajs應該盡量的去使用官方的構建工具。

更多關于JavaScript相關內(nèi)容感興趣的讀者可查看本站專題:《JavaScript擴展技巧總結》、《JavaScript字符與字符串操作技巧總結》、《JavaScript數(shù)學運算用法總結》、《JavaScript中json操作技巧總結》、《JavaScript錯誤與調(diào)試技巧總結》及《JavaScript數(shù)據(jù)結構與算法技巧總結

希望本文所述對大家JavaScript程序設計有所幫助。

相關文章

  • SeaJS中use函數(shù)用法實例分析

    SeaJS中use函數(shù)用法實例分析

    這篇文章主要介紹了SeaJS中use函數(shù)用法,結合實例形式分析了use函數(shù)加載模塊的使用方法與相關操作技巧,需要的朋友可以參考下
    2017-10-10
  • 詳解Sea.js中Module.exports和exports的區(qū)別

    詳解Sea.js中Module.exports和exports的區(qū)別

    最近在看Seajs時,看到了exports.doSomething和module.exports,想對這兩者的區(qū)別一探究竟。所以下面這篇文章主要介紹了Sea.js中Module.exports和exports的區(qū)別,需要的朋友可以參考借鑒,一起來看看吧。
    2017-02-02
  • seajs學習教程之基礎篇

    seajs學習教程之基礎篇

    Seajs是一個Web模塊加載框架,追求簡單、自然的代碼書寫和組織方式,Sea.js 遵循 CMD 規(guī)范,模塊化JS代碼。依賴的自動加載、配置的簡潔清晰,可以讓程序員更多地專注編碼。這篇文章為seajs深入學習的第一篇,主要介紹的基礎性的內(nèi)容,感興趣的朋友們可以參考學習。
    2016-10-10
  • seaJs的模塊定義和模塊加載淺析

    seaJs的模塊定義和模塊加載淺析

    這篇文章主要介紹了seaJs的模塊定義和模塊加載淺析,以及模塊間的依賴關系等問題,需要的朋友可以參考下
    2014-06-06
  • seaJs使用心得之exports與module.exports的區(qū)別實例分析

    seaJs使用心得之exports與module.exports的區(qū)別實例分析

    這篇文章主要介紹了seaJs使用心得之exports與module.exports的區(qū)別,結合實例形式分析了exports與module.exports具體功能、使用方法及相關操作注意事項,需要的朋友可以參考下
    2017-10-10
  • 把jQuery的類、插件封裝成seajs的模塊的方法

    把jQuery的類、插件封裝成seajs的模塊的方法

    這篇文章主要介紹了把jQuery的類、插件封裝成seajs的模塊的方法,需要的朋友可以參考下
    2014-03-03
  • seajs中模塊依賴的加載處理實例分析

    seajs中模塊依賴的加載處理實例分析

    這篇文章主要介紹了seajs中模塊依賴的加載處理,結合實例形式分析了seajs模塊依賴與加載的原理、相關注意事項與使用方法,需要的朋友可以參考下
    2017-10-10
  • SeaJS入門教程系列之SeaJS介紹(一)

    SeaJS入門教程系列之SeaJS介紹(一)

    這篇文章主要介紹了SeaJS入門教程,講述了SeaJS的由來,JavaScript傳統(tǒng)開發(fā)模式和模塊化開發(fā)的對比,需要的朋友可以參考下
    2014-03-03
  • seajs模塊之間依賴的加載以及模塊的執(zhí)行

    seajs模塊之間依賴的加載以及模塊的執(zhí)行

    做前端項目已經(jīng)離不開SeaJS了,現(xiàn)在的很多的網(wǎng)站都用了SeaJS,對這個JS模塊加載器原理的越來越感興趣。這篇文章我們來一起學習seajs模塊之間依賴的加載以及模塊的執(zhí)行,感興趣的朋友們下面來一起看看吧。
    2016-10-10
  • Seajs源碼詳解分析

    Seajs源碼詳解分析

    近幾年前端工程化越來越完善,打包工具也已經(jīng)是前端標配了,像seajs這種老古董早已停止維護,這是一篇細細品味Seajs源碼的文章,看完一定受益匪淺
    2019-04-04

最新評論

淅川县| 嘉鱼县| 唐海县| 保定市| 黄浦区| 大荔县| 关岭| 高安市| 蓝田县| 烟台市| 景泰县| 潞城市| 靖江市| 兴国县| 灌阳县| 留坝县| 滨州市| 凤山县| 罗定市| 灵山县| 醴陵市| 湖北省| 崇义县| 扶余县| 斗六市| 和硕县| 海口市| 安溪县| 逊克县| 关岭| 灵宝市| 宁海县| 枣阳市| 东港市| 普格县| 南昌县| 怀仁县| 英山县| 蓬安县| 文安县| 秭归县|