webpack中的异步加载

时间:2016-05-10 13:05:44

标签: javascript webpack

我有以下情况。

EntryA

    publishing.publications {
library(MavenPublication) {
    groupId project.ext.group
    artifactId project.ext.archivesBaseName
    version project.ext.version

    // Release AAR, Sources, and JavaDoc
    artifact "$buildDir/outputs/aar/volley-release.aar"
    artifact sourcesJar
    artifact javadocJar
}
}

EntryB

require("./test.js");

test.js

require("./test.js");

我想要使用webpack来编译这些javascript文件。在html页面上我只想包含EntryA.js。 EntryA和EntryB之间的所有常见内容都应该包含在sperate文件中。现在,当需要test.js时,应该从网上下载该公共文件。

这是可能的,ghow我应该继续吗?

1 个答案:

答案 0 :(得分:0)

Webpack提供了两种分割JS的方法。

  1. 使用multiple entry points(正如您所做的那样)。
  2. 通过System.import(或Webpack 2中的private void AddReferences(string iFilePath, List iReferenceFile) { if (iReferenceFile.IsNullOrEmpty()) throw new Exception("La liste des références à créer est vide"); var rootFolder = (IEdmFolder8)_Vault2.RootFolder; IEdmFolder5 parentFolder; var theFile = _Vault2.GetFileFromPath(iFilePath, out parentFolder); if (theFile == null) throw new Exception("Le fichier '{0}' n'existe pas".FormatString(iFilePath)); var customReferences = (IEdmEnumeratorCustomReference6)theFile; foreach(var iFilePathItem in iReferenceFile) { IEdmFolder5 parentFolderItem; var theFileItem = _Vault2.GetFileFromPath(rootFolder.LocalPath + "\\" + iFilePathItem, out parentFolderItem); customReferences.AddReference2(theFileItem.ID, parentFolderItem.ID, 1); } } private void RemoveAllReferences(string iFilePath) { IEdmFolder5 parentFolder; var theFile = _Vault2.GetFileFromPath(iFilePath, out parentFolder); if (theFile == null) throw new Exception("Le fichier '{0}' n'existe pas".FormatString(iFilePath)); var customReferences = (IEdmEnumeratorCustomReference6)theFile; var customReferencePos = customReferences.GetFirstRefPosition(); while (!customReferencePos.IsNull) { int refFileId = 0; int refFolderId = 0; string path = null; int quantity = 0; customReferences.GetNextRef2(customReferencePos, out refFileId, out refFolderId, out path, out quantity); customReferences.RemoveReference(refFileId, refFolderId); } } )定义split points
  3. 方法1的确适用于传统的“多种”方法。页面网站,并要求您在正确的页面上导入适当的入口点。注意:您可以使用CommonsChunkPlugin提取所有共享代码,但仍必须手动引用。

    方法2更适合单页应用,并会根据需要自动加载新脚本。