我尝试按照 Angular 更新指南从 Angular 8 升级到 Angular 10。
我的项目由核心应用程序、共享(2 个库、谷歌地图和共享组件)和一个额外的 apk fsm(2 个库、应用程序及其元数据)组成。
核心和共享的构建正在通过,但 fsm 构建失败,并显示“错误:无法在 C:/Users/PATH/fsm-frontend/node_modules/shared-frontend/src/components/chip/chip.component 中写入对 ChipComponent 的引用” .ts 来自 C:/Users/PATH/fsm-frontend/node_modules/shared-frontend/src/components/chip/chip.module.ts “错误。
ChipComponent 本身没有问题,但可能在某些导入或 tsconfig 中存在问题。
共享 tsconfig.json:
{
"compileOnSave": false,
"compilerOptions": {
"baseUrl": "./",
"downlevelIteration": true,
"importHelpers": true,
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"module": "es2020",
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es2015",
"typeRoots": [
"node_modules/@types"
],
"lib": [
"es2017",
"dom"
],
"paths": {
"shared-frontend": [
"dist/shared-frontend"
],
"shared-frontend/*": [
"dist/shared-frontend/*"
],
"map": [
"dist/map"
], …Run Code Online (Sandbox Code Playgroud) 是否可以从通过npm link与其他模块链接的热切加载的“共享”模块中延迟加载模块?我收到此错误:./src/$$_lazy_route_resource惰性名称空间对象中的错误找不到模块:错误:无法解析“中的C:project / shared / src / lazy module / lazy.module.ngfactory.js” C:project \ core \ src \ $$ _ lazy_route_resource'。
-project
- shared (linked) (eagerly loaded)
- lazy module
- core (link) (main app module)
Run Code Online (Sandbox Code Playgroud)
这是我的angular.json(位于内核中)
"lazyModules": ["../shared/src/lazy module/lazy.module"],
test.component.ts
constructor(public injector: Injector, private loader: NgModuleFactoryLoader) { }
private moduleRef: NgModuleRef<any>;
load(): Promise<void> {
if (this.moduleRef) {
return Promise.resolve();
}
const path = 'src/lazy-module/lazy.module#LazyModule';
return this.loader
.load(path)
.then(moduleFactory => {
this.moduleRef = moduleFactory.create(this.injector).instance;
console.warn('moduleRef', this.moduleRef);
})
.catch(err => {
console.error('error …Run Code Online (Sandbox Code Playgroud) 我想创建 2 个组(教授、学生)。我想限制学生创建和删除课程。
视图.py:
def is_professor(function=None):
def _is_professor(u):
if user.groups.filter(name='Professor').exists():
return True
else:
raise HttpResponseForbidden
return _is_professor(function)
class ListCourseView(ListView):
model = Course
template_name = 'course_list.html'
fields = '__all__'
@is_professor
class CreateCourseView(CreateView):
def get_queryset(self, request):
if not request.user.is_superuser:
return False
model = Course
template_name = 'course/edit_course.html'
fields = '__all__'
def get_success_url(self):
return reverse('courses-list')
def get_context_data(self, **kwargs):
context = super(CreateCourseView, self).get_context_data(**kwargs)
context['action'] = reverse('courses-new')
return context
class UpdateCourseView(UpdateView):
model = Course
template_name = 'course/edit_course.html'
fields = '__all__'
def get_success_url(self):
return reverse('courses-list')
def …Run Code Online (Sandbox Code Playgroud) angular ×2
typescript ×2
angular-ivy ×1
decorator ×1
django ×1
lazy-loading ×1
module ×1
permissions ×1
python ×1