У меня проблема, когда я пытаюсь запустить свой проект angular 6. У меня такая ошибка:
«TSError: ⨯ Невозможно скомпилировать TypeScript: git.version.ts (34,29): ошибка TS2339: свойство'commonLatest 'не существует для типа' typeof Observable '».
Он хорошо работал с Angular 5, но я обновил RxJs (с 5 до 6), и теперь он не работает.
import { readFileSync, writeFileSync } from 'fs';
import { join } from 'path';
import { Observable, combineLatest } from 'rxjs';
let exec = require('child_process').exec;
let tag = new Observable<string>(s => {
exec('git describe --tags $(git rev-list --tags --max-count=1)',
function (error: Error, stdout: Buffer, stderr: Buffer) {
if (error !== null) {
console.log('git error: ' + error + stderr);
}
s.next(stdout.toString().trim());
s.complete();
});
});
let revision = new Observable<string>(s => {
exec('git rev-parse --short HEAD',
function (error: Error, stdout: Buffer, stderr: Buffer) {
if (error !== null) {
console.log('git error: ' + error + stderr);
}
s.next(stdout.toString().trim());
s.complete();
});
});
Observable.combineLatest(tag, revision).subscribe(([tag, revision]) => {
console.log(`version: '${tag}', revision: '${revision}'`);
const content = '// this file is automatically generated\n' +
`export const version = {version: '${tag}', revision: '${revision}'};`;
writeFileSync(
'src/environments/version.ts',
content,
{encoding: 'utf8'}
);
});
Я запускаю команду: "ts-node git.version.ts", чтобы получить фиксацию и версию тега, с которой я работаю.
Большое тебе спасибо !
ОБНОВИТЬ :
combineLatest(tag, revision).subscribe(([tag, revision]) => {
console.log(`version: '${tag}', revision: '${revision}'`);
const content = '// this file is automatically generated\n' +
`export const version = {version: '${tag}', revision: '${revision}'};`;
writeFileSync(
'src/environments/version.ts',
content,
{encoding: 'utf8'}
);
});
У меня нет ошибок по поводу CombineLatest, но у меня есть ошибка от ts-node:
function (exports, require, module, __filename, __dirname) { import { writeFileSync } from 'fs';
^^^^^^
SyntaxError: Unexpected token import
Любая идея ?
ОБНОВЛЕНИЕ 2: Чтобы исправить эту ошибку:
"config": "ts-node -O '{\"module\": \"commonjs\"}' git.version.ts",
В package.json