Pergunta

Eu tenho um código como o seguinte

define("ModuleA", ["InitialDependency"], function (initDep){
   return {};
});


define("ModuleB", ["ModuleA", "OtherDependency"], function (moduleA, otherDep){
   return {};
});

Cada um desses módulos é definida em arquivos separados "ModuleA.js", "Moduleb.js", "InitialDependency.js" e "OtherDependency.js".

Estes módulos são carregados sequencialmente em meu aplicativo.ModuleB é sempre carregado após ModuleA.isto significa que, no estágio de otimização eu não quero ModuleA do script combinado de script para ModuleB.Eu quero o seguinte

ModuleA.built.js inclui

  • InitialDependency
  • ModuleA

ModuleB.built.js inclui

  • OtherDependency
  • ModuleB

Eu não quero todas no mesmo arquivo, porém, como ModuleB nunca pode ser carregado.

Eu posso fazer um script de compilação para ambos os módulos, mas isso vai ser demorado como eu tenho bastante alguns módulos no meu projeto e gostaria de construir um script que irá criar o monte deles de uma só vez.

O que eu preciso saber para criar um script para a construção de ambos estes módulos (e mais do que seguir o mesmo padrão de dependência)?

Foi útil?

Solução

Para conseguir isso, você teria que jogar com o modules opção de configuração.

Ele poderia ter esta aparência:

{
    modules: [
        {
            name: "ModuleA",
            include: [],
            exclude: []
        },
        {
            name: "ModuleB",
            exclude: [
                "moduleA"
            ]
        }
    ]
}

Há um semelhante exemplo de configuração por James aqui: https://github.com/requirejs/example-multipage

É claro que, por construção desses módulos separadamente, você pode acabar precisando de atualização caminhos.Se assim for, o melhor caminho, então, seria a criação de um arquivo contendo uma require.config chamada com configuração especial para o seu edificado app e incluindo esta configuração em vez de seu habitual.Mas, se você definir dependências em um bom separados, então você provavelmente vai estar bem.Por "bom separados" forma, quero dizer que, se moduleA é a base de script, então ele não deveria ter dependências embalado com moduleB - mas eu acho que isso é senso comum!

Nota sobre corrigidos módulos:Como shims config funcionar apenas onde os arquivos são carregados e r.js a ordem de plug-ins, certifique-se você não incluir uma correção de módulo sem dependência se você não estiver 100% de certeza de que estes serão carregados antes.Mais informações aqui: https://github.com/requirejs/example-multipage-shim

Espero que isso ajude!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top