我想开始在使用 gulp 构建的现有 angularjs 项目中使用 Angular 组件,并希望downgradeModule
用于创建混合 Angular/AngularJS 应用程序。
我在使用 gulp 捆绑 AngularJS 应用程序时从 Angular 项目中导入 AppModule 时遇到问题 - browserify 步骤抱怨找不到 AppModule:
Error: module "../new-app/src/app/app.module" not found from "Users/me/src/old-app/public/src/fake_72fafc74.js"
模块在 AngularJS 入口文件中是这样导入的:
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { downgradeModule } from '@angular/upgrade/static';
import { AppModule } from '../new-app/src/app/app.module';
const bootstrapFn = (extraProviders: StaticProvider[]) => {
const platformRef = platformBrowserDynamic(extraProviders);
return platformRef.bootstrapModule(AppModule);
};
const downgradedModule = downgradeModule(bootstrapFn);
angular.module('old-angular-js-app', [..., downgradedModule])
我想知道如何使用该ng build
命令单独构建 Angular 应用程序,然后在捆绑 angularjs 应用程序时使编译的 AppModule 可见。
我想我可以ng build
在 gulp 任务中调用命令并将工件复制到 AngularJS dist 文件夹:
var exec = require('child_process').exec;
gulp.task('build', function (cb) {
exec('ng build', function (err, stdout, stderr) {
// copy the artifacts to the dist folder
cb(err);
});
})
但我不确定在导入模块时如何解析 AppModule 的路径:
import { AppModule } from '../new-app/src/app/app.module';