RE: Angular2 2.0.0, angular-cli v1.0.0-beta.11-webpack.8
Como faço para dizer ao angular-cli para incluir um arquivo de "src / assets" na raiz de "dist" quando for compilado?
Implementamos em um host Windows e precisamos incluir um arquivo "web.config" para dizer ao IIS para rotear tudo para o índice. Estávamos fazendo isso antes do RC4, mas com toda a atualização não deu certo (não me lembro como fizemos).
Tenho pesquisado a documentação do repositório GitHub e não encontrei nada útil em relação a este tópico. Talvez eu esteja no lugar errado?
No ToC , há um ponto de marcador "Adicionando arquivos extras ao build", mas parece que essa seção não existe.
angular
angular-cli
Kizmar
fonte
fonte
"copy:webConfig": "node node_modules/copy/bin/cli.js web.config dist"
. Eu também acrescentou um post script de construção:"postbuild": "npm run copy:webConfig"
. Havia outros problemas ao tentar fazer a cópia funcionar, mas isso funcionou.Respostas:
A propriedade "assets" do angular-cli.json pode ser configurada para incluir arquivos personalizados no build do angular-cli webpack. Portanto, configure o valor da propriedade "ativos" como uma matriz. Por exemplo:
a configuração acima irá copiar config.jsn e .htaccess para a pasta dist durante a construção do webpack do angular-cli. A configuração acima funcionou no angular-cli versão 1.0.0-beta.18
fonte
Resposta correta atual:
A equipe adicionou suporte para copiar arquivos específicos como estão para a pasta de saída (
dist
por padrão) em uma versão posterior do Angular CLI (seria beta 17 ou 19 - está nas versões 1.x finais há muito tempo).Basta adicioná-lo ao array da seguinte
angular-cli.json
forma:(Observe que o caminho é relativo à
src
pasta)Eu pessoalmente uso e funciona muito bem.
A partir do beta 24, adicionei um recurso ao Angular CLI que garante que todos osassets
arquivos e pastas sejam servidos pelo servidor de desenvolvimento webpack quando em execuçãong test
não apenasng serve
.Ele também oferece suporte para servir os arquivos de ativos no servidor de desenvolvimento webpack usado para testes de unidade (
ng test
).(caso você precise de alguns arquivos JSON para os testes, ou apenas deteste ver avisos 404 no console).
Eles já são servidos de
ng e2e
porque está cheiong serve
.E também tem recursos mais avançados, como filtrar quais arquivos você deseja de uma pasta e fazer com que o nome da pasta de saída seja diferente da pasta de origem:
Você também pode consultar a documentação oficial: Guia Angular - Configuração do espaço de trabalho .
.
[SOMENTE PARA ARQUIVO] Resposta original (6 de outubro de 2016):
Infelizmente, isso não é suportado no momento (a partir da versão beta-16). Eu levantei a preocupação exata para a equipe (arquivos web.config), mas não parece que vai acontecer tão cedo (a menos que você esteja bifurcando a CLI, etc).
Siga esta edição para uma discussão completa e possíveis detalhes futuros.
PSPara o arquivo JSON, você pode colocá-lo
./src/assets/
. Esta pasta é copiada como está./dist/assets/
. Este é o comportamento atual.Anteriormente, nos dias do systemJS, havia outra
./public/
pasta que era copiada./dist/
diretamente, mas ela não existe mais nas versões Webpack, que o problema mencionado acima discute.fonte
Uma solução (embora na minha opinião seja um pouco um hack) é declarar uma variável em seu
main.ts
arquivo que requer o arquivo extra que você deseja incluir na saída de compilação do webpack.EX:
Quando o webpack encontra essa instrução de declaração de variável,
main.ts
ele emitirá oweb.config
arquivo bruto como parte da saída da compilação:Uma solução ideal seria a configuração do webpack, mas eu não consigo entender como o angular-cli está gerenciando isso
angular-cli.json
ainda (beta.16).Portanto, se alguém tiver uma resposta melhor que estenda a configuração do webpack para um projeto gerado pelo angular-cli, adoraria ouvi-la.
fonte
Para leitores Angular 8 ,
.htaccess
precisa sersrc/.htaccess
. Ver abaixo,Certifique-se de ter colocado o
.htaccess
arquivo dentro dosrc
diretório do seu projeto.(Se precisar de um
htaccess
arquivo válido , você pode encontrar um aqui - https://stackoverflow.com/a/57126352/767625 )É isso aí. Isso agora deve ser copiado quando você clicar
ng build --prod=true
.Espero que isso ajude alguém.
Felicidades,
fonte
angular.json
não é oangular-cli.json
mencionado nas respostas anteriores.Há uma seção de "scripts" no arquivo angular-cli.json. Você pode adicionar todos os arquivos javascript de terceiros lá.
fonte
No meu caso, usei o Angular versão 5 , então tentei criar um arquivo chamado Staticfile.txt ao executar o comando ng build --prod. certifique-se de fornecer a extensão do arquivo, caso contrário, o arquivo não será criado.
fonte
Modifique angular.json.
Adicionar entrada à matriz de ativos:
fonte