Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

199
Visualizações
¿Cómo obtengo un documento inyectado en systemjs-builder para agrupar una aplicación angular 4.0.0?

Estoy tratando de agrupar una aplicación angular 4.0.0.

Probé browserify, pero el nuevo complemento de cargador angular (que permite no necesitar el moduleId en componentes con templateUrl) no se llama, por lo que las plantillas terminan con la ruta incorrecta.

Así que me mudé a systemjs-builder, pero el problema es que cuando ejecuta ese complemento, se bloquea y dice que el documento no está definido.

¿Hay alguna manera de inyectar documentos en el constructor?

¿O estoy haciendo algo mal?

Este es el constructor simple que estoy probando (el systemjs-config es el de inicio rápido angular).

 var path = require("path"); var Builder = require('systemjs-builder'); var builder = new Builder('src/frontend', 'src/frontend/systemjs.config.js'); builder .bundle('main.js', 'bundle.js') .then(function() { console.log('Build complete'); }) .catch(function(err) { console.log('Build error'); console.log(err); });
over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

He estado buscando la solución a este problema durante largas horas. Como no pude encontrarlo, modifiqué systemjs-angular-loader.js para evitar el error. Con este hack systemjs-builder ahora está funcionando.

 var templateUrlRegex = /templateUrl\s*:(\s*['"`](.*?)['"`]\s*)/gm; var stylesRegex = /styleUrls *:(\s*\[[^\]]*?\])/g; var stringRegex = /(['`"])((?:[^\\]\\\1|.)*?)\1/g; module.exports.translate = function(load){ if (load.source.indexOf('moduleId') != -1) return load; var document=document || null; if(document){ var url = document.createElement('a'); url.href = load.address; var basePathParts = url.pathname.split('/'); basePathParts.pop(); var basePath = basePathParts.join('/'); var baseHref = document.createElement('a'); baseHref.href = this.baseURL; baseHref = baseHref.pathname; if (!baseHref.startsWith('/base/')) { // it is not karma basePath = basePath.replace(baseHref, ''); } } else{ var address=load.address; address=address.replace('file:///'+__dirname+'/', ''); var basePathParts = address.split('/'); basePathParts.pop(); var basePath = basePathParts.join('/'); } load.source = load.source .replace(templateUrlRegex, function(match, quote, url){ var resolvedUrl = url; if (url.startsWith('.')) { resolvedUrl = basePath + url.substr(1); } return 'templateUrl: "' + resolvedUrl + '"'; }) .replace(stylesRegex, function(match, relativeUrls) { var urls = []; while ((match = stringRegex.exec(relativeUrls)) !== null) { if (match[2].startsWith('.')) { urls.push('"' + basePath + match[2].substr(1) + '"'); } else { urls.push('"' + match[2] + '"'); } } return "styleUrls: [" + urls.join(', ') + "]"; }); return load; };
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda