Links simbólicos do sistema de arquivos? Qual sistema operacional, links físicos ou físicos? alguma mudança você pode fazer um repo com reprodução?
Sistema operacional Windows. Link simbólico criado usando a opção "npm link" para o módulo externo. Se o módulo estiver instalado, não há problema. Mas para testar localmente precisamos criar links simbólicos e isso não está funcionando apenas com o plugin typescript2. Com o plugin typescript1, os links simbólicos funcionam, mas os enums não.
O mesmo problema, mas eu uso lerna para vincular pacotes e rollup reclama token inesperado para os pacotes vinculados.
exatamente o mesmo problema no Windows com lerna
Se eu copiar a pasta diretamente para node_modules está tudo bem, mas com um link simbólico não funciona
@PavaniVaka @TerenceZ @thealjey alguma chance de um pequeno repo com reprodução?
@ezolenko Desculpe, não. Mas reduzi um pouco a questão. Percebi que, se o módulo externo for copiado para o diretório do aplicativo, ele funciona. Mas se for apenas um link simbólico, não está funcionando. Por ex: Com yalc podemos testar as dependências externas facilmente. Porque ele cria a pasta yalc no diretório do aplicativo e copia o módulo externo para essa pasta e, em seguida, cria um link simbólico da pasta yalc para node_modules. Espero que isso dê alguma pista.
@ezolenko Na verdade, descobri qual era o problema no meu caso e não tem nada a ver com este plugin (funciona perfeitamente) ou links simbólicos para esse assunto.
É mais uma deficiência do próprio texto digitado, ou melhor, sua configuração depende de arquivos json.
O problema era que o link simbólico estava resolvendo para um arquivo fora do CWD.
Simplesmente movi meu comando de construção para o arquivo package.json de nível superior e tudo começou a funcionar.
acho que estamos na mesma página aqui.
@PavaniVaka @TerenceZ @thealjey alguma chance de um pequeno repo com reprodução?
@ezolenko https://github.com/moki/mokui existe um.
Resolvi o problema nº 194, caso alguém encontre o mesmo problema, abaixo estou fornecendo a solução:
Quando alguém tenta construir cada pacote separado dentro do monorepo, o rollup tenta resolver @organization/package-name
e incluí-lo na construção. Você não quer isso, então, para evitá-lo ao construir cada pacote, estou analisando package.json
, extraindo as chaves do campo dependencies
e, em seguida, verificá-las dentro de callback
one pode fornecer o campo external
da configuração de rollup. Isso produzirá o resultado desejado.
import json from "rollup-plugin-json";
const pkg = process.env.LERNA_PACKAGE_NAME &&
require(`${process.env.LERNA_PACKAGE_NAME}/package.json`);
const dependencies = ({ dependencies }) => Object.keys(dependencies || {});
const pkgdependencies = dependencies(pkg);
/* exported rollup configuration */
const config = {
/* your config goes here... */
/* id is the source name if list of dependencies includes
* id source name, then mark it as external,
*/
external: id => pkgdependencies.includes(id)
};
export default config;
mesmo problema e rollup-plugin-typescript
funciona
O problema também ocorre quando um arquivo sob o src é um link simbólico para um arquivo typescript fora do projeto.
por exemplo, a estrutura do arquivo conforme abaixo:
core/core-client/src/api.ts
myapp/myapp-client/src/api.ts
myapp/myapp-app/src/domain/api.ts -> ../../../myapp-client/src/domain/api.ts
myapp/myapp-app/src/domain/core -> ../../../../core/core-client/src/domain/
...
quando eu compilar o projeto em myapp / myapp-app,
reclamação de rollup com o erro abaixo:
[ ERROR ] Rollup: Parse Error: ../myapp-client/src/domain/api.ts:28:7
Unexpected token (Note that you need plugins to import files that are not JavaScript)
L28: export interface IPrimus extends Primus {
com a palavra interface
destacada em vermelho
Minha solução alternativa é usar pré / pós gancho no script npm para desvincular e vincular os arquivos ...
Portanto, meu IDE pode verificar a versão mais recente durante o desenvolvimento e pode ser compilado durante a construção.
Comentários muito úteis
O mesmo problema, mas eu uso lerna para vincular pacotes e rollup reclama token inesperado para os pacotes vinculados.