{"id":18,"date":"2021-12-20T04:14:46","date_gmt":"2021-12-20T04:14:46","guid":{"rendered":"http:\/\/114.132.224.28\/?p=18"},"modified":"2021-12-20T04:14:46","modified_gmt":"2021-12-20T04:14:46","slug":"mini-pack","status":"publish","type":"post","link":"http:\/\/localhost\/2021\/12\/20\/mini-pack\/","title":{"rendered":"Mini-pack"},"content":{"rendered":"\n

\u4e0erollup\u4e0d\u540c\uff0cwebpack\u4e3b\u8981\u901a\u8fc7\u8f6c\u79fb\u6210commonjs\u7684iife\u5f62\u5f0f\u751f\u6210bundle\u4ee3\u7801\u3002<\/p>\n\n\n\n

  1. \u901a\u8fc7arcon\u5206\u6790\u5165\u53e3\u4ee3\u7801\uff0c\u751f\u6210module<\/li><\/ol>\n\n\n\n
    {\n  id: 0,\n  code: '',\n  path: '',\n  deps: []\n}<\/code><\/pre>\n\n\n\n

    2. \u7ee7\u7eed\u904d\u5386deps\uff0c\u7ee7\u7eed\u751f\u6210assert\uff0c\u751f\u6210\u4e00\u4e2a\u4f9d\u8d56\u56fe<\/p>\n\n\n\n

    const absolutePath = path.dirname(assets.path)\nconst child = createAssets(path.join(absolutePath, relativePath))\nassert.mapping:{\n  [relativePath]: child .id\n}<\/code><\/pre>\n\n\n\n

    3. \u751f\u6210bundle\u4ee3\u7801<\/p>\n\n\n\n

    let module;\nmodule += {${module.id}: [\n            function(require, module, exports) {\n                ${mod.code}\n            },\n            ${JSON.stringify(mod.mapping)}\n ]},\nconst result <\/code>= `(function(graph){\n  function require(id) {\n   const [fn, mapping] = graph[id]\n    let module = {\n        exports: {}\n   }\n   function localRequired(relativePath){\n     return require(mapping[relativePath])\n   }\n   fn(localRequired, module, module.exports)\n   return module.exports\n  }\n  require(0)\n})(graph)`<\/code><\/pre>\n\n\n\n

    reference\uff1a<\/p>\n\n\n\n

    https:\/\/www.youtube.com\/watch?v=UNMkLHzofQI<\/a><\/p>\n\n\n\n

    \u624b\u52a8\u5c06\u4ee3\u7801\u6539\u53d8\uff0c\u6f14\u793a\u7684\u662f\u52a0\u8f7d\u8fc7\u7a0b\u548c\u600e\u4e48\u6574\u5408\u4ee3\u7801\uff0c\u5e76\u6f14\u793a\u4e86\u52a8\u6001\u8f7d\u5165<\/p>\n\n\n\n

    https:\/\/www.bilibili.com\/video\/BV1ef4y1M7Dn?spm_id_from=333.999.0.0<\/a><\/p>\n\n\n\n

    \u901a\u8fc7ast\u7684\u8bcd\u6cd5\u5206\u6790\uff0c\u5c06import\u52a8\u6001\u8f6c\u4ee3\u7801\uff0c\u6ca1\u6709\u6f14\u793a\u52a8\u6001\u8f7d\u5165<\/p>\n\n\n\n

    https:\/\/astexplorer.net\/<\/a><\/p>\n\n\n\n

    \u5728\u7ebf\u89c2\u5bdfast<\/p>\n","protected":false},"excerpt":{"rendered":"

    \u4e0erollup\u4e0d\u540c\uff0cwebpack\u4e3b\u8981\u901a\u8fc7\u8f6c\u79fb\u6210c …<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"_links":{"self":[{"href":"http:\/\/localhost\/wp-json\/wp\/v2\/posts\/18"}],"collection":[{"href":"http:\/\/localhost\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/localhost\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/localhost\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/localhost\/wp-json\/wp\/v2\/comments?post=18"}],"version-history":[{"count":0,"href":"http:\/\/localhost\/wp-json\/wp\/v2\/posts\/18\/revisions"}],"wp:attachment":[{"href":"http:\/\/localhost\/wp-json\/wp\/v2\/media?parent=18"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/localhost\/wp-json\/wp\/v2\/categories?post=18"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/localhost\/wp-json\/wp\/v2\/tags?post=18"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}