Skip to content

Commit

Permalink
fix(vite-plugin-angular): add compatibility support for Angular v16.2+ (
Browse files Browse the repository at this point in the history
  • Loading branch information
brandonroberts authored and Villanuevand committed Sep 12, 2023
1 parent eed1224 commit 9263ac4
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 2 deletions.
39 changes: 39 additions & 0 deletions apps/create-analog-e2e/tests/create-analog.spec.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,38 @@
import { checkFilesExist, uniq, runCommandAsync } from '@nx/plugin/testing';
import { readFileSync, writeFileSync, rmdirSync } from 'node:fs';
import fs from 'node:fs';
import path from 'node:path';

function copy(src, dest) {
const stat = fs.statSync(src);
if (stat.isDirectory()) {
copyDir(src, dest);
} else {
fs.copyFileSync(src, dest);
}
}

/**
* @param {string} srcDir
* @param {string} destDir
*/
function copyDir(srcDir, destDir) {
fs.mkdirSync(destDir, { recursive: true });
for (const file of fs.readdirSync(srcDir)) {
const srcFile = path.resolve(srcDir, file);
const destFile = path.resolve(destDir, file);
copy(srcFile, destFile);
}
}

function emptyDir(dir) {
if (!fs.existsSync(dir)) {
return;
}
for (const file of fs.readdirSync(dir)) {
fs.rmSync(path.resolve(dir, file), { recursive: true, force: true });
}
}

describe('create-analog e2e', () => {
it('should create my-app', async () => {
Expand All @@ -15,6 +48,12 @@ describe('create-analog e2e', () => {
cwd: tmpDir,
});

emptyDir(`${tmpDir}/node_modules/@analogjs`);
copyDir(
`${process.cwd()}/node_modules/@analogjs`,
`${tmpDir}/node_modules/@analogjs`
);

let viteConfig = readFileSync(`${tmpDir}/vite.config.ts`, 'utf-8');
viteConfig = viteConfig.replace(
'analog()',
Expand Down
15 changes: 13 additions & 2 deletions packages/vite-plugin-angular/src/lib/utils/devkit.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,17 @@
import { requiresLinking } from '@angular-devkit/build-angular/src/tools/babel/webpack-loader';
import angularApplicationPreset from '@angular-devkit/build-angular/src/tools/babel/presets/application';
import * as wbl from '@angular-devkit/build-angular/src/tools/babel/webpack-loader';
import * as app from '@angular-devkit/build-angular/src/tools/babel/presets/application';

let requiresLinking: Function;
/**
* Workaround for compatibility with Angular 16.2+
*/
if (typeof wbl['requiresLinking'] !== 'undefined') {
requiresLinking = wbl.requiresLinking;
} else if (typeof (app as any)['requiresLinking'] !== 'undefined') {
requiresLinking = (app as any)['requiresLinking'] as Function;
}

const angularApplicationPreset = app.default;
import { createJitResourceTransformer } from '@angular-devkit/build-angular/src/tools/esbuild/angular/jit-resource-transformer';
import { CompilerPluginOptions } from '@angular-devkit/build-angular/src/tools/esbuild/angular/compiler-plugin';
import { JavaScriptTransformer } from '@angular-devkit/build-angular/src/tools/esbuild/javascript-transformer';
Expand Down

0 comments on commit 9263ac4

Please sign in to comment.