来自另一个路径的模型类在 NativeScript 中引发错误调用模块
Posted
技术标签:
【中文标题】来自另一个路径的模型类在 NativeScript 中引发错误调用模块【英文标题】:Model class from another path throws error calling module in NativeScript 【发布时间】:2019-11-15 05:38:49 【问题描述】:我有一个运行良好的 Web 应用程序,然后使用 NativeScript 将其迁移到移动应用程序中。
我在 src/app/model
中有一个模型文件,其中我有一些像这样导出的类模型:
export class User
username: string;
password: string;
我正在尝试将该类模型导入服务类。我的服务类路径是 src/app/auto-generated/service。当我导入它时,该应用程序不起作用。但是,当我在 src/app/auto-generated 中创建相同的类模型,然后将其导入我的服务类时,它可以工作。为什么它会发生在路径上?我该如何解决?
出现错误时我的文件是怎样的:
import Injectable from "@angular/core";
import HttpClient, HttpHeaders from "@angular/common/http";
import User from 'app/model/User';
@Injectable(
providedIn: "root"
)
export class UserLoginService
user: User = new User();
constructor()
login(name: string, password: string, imTid: string): Observable<UiInfo>
console.log(name);
return ;
还有错误:
System.err: java.lang.RuntimeException: 无法创建应用程序 com.tns.NativeScriptApplication: com.tns.NativeScriptException: System.err:System.err:调用模块函数时出错 System.err: System.err:无法编译 /data/data/org.nativescript.ngsample/files/app/bundle.js System.err: System.err: SyntaxError: Unexpected token ! System.err:文件: “file:///data/data/org.nativescript.ngsample/files/app/bundle.js, 行:292,列:24 System.err:System.err:StackTrace:System.err: 框架:函数:'require',文件:'',行:1,列:266 System.err: 框架:功能:'', 文件:'file:///data/data/org.nativescript.ngsample/files/app/starter.js', 行:3,列:1 System.err:帧:函数:'require',文件:'', 行:1,列:266 System.err:System.err:System.err:SyntaxError: 意外的标记 ! System.err:文件:“,行:1,列:265 System.err:System.err:StackTrace:System.err:帧: 函数:'require',文件:'',行:1,列:266 System.err: 框架:功能:'', 文件:'file:///data/data/org.nativescript.ngsample/files/app/starter.js', 行:3,列:1 System.err:帧:函数:'require',文件:'', 行:1,列:266 System.err:System.err:System.err:SyntaxError: 意外的标记 ! System.err:文件:“,行:1,列:265 System.err:System.err:StackTrace:System.err:帧: 函数:'require',文件:'',行:1,列:266 System.err: 框架:功能:'', 文件:'file:///data/data/org.nativescript.ngsample/files/app/starter.js', 行:3,列:1 System.err:帧:函数:'require',文件:'', 行:1,列:266 System.err:System.err:at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5876) System.err:在 android.app.ActivityThread.access$1100(ActivityThread.java:199) System.err:在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1650) System.err:在 android.os.Handler.dispatchMessage(Handler.java:106) System.err: 在 android.os.Looper.loop(Looper.java:193) System.err: 在 android.app.ActivityThread.main(ActivityThread.java:6669) System.err: 在 java.lang.reflect.Method.invoke(Native Method) System.err: 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) System.err:在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858) System.err:引起:com.tns.NativeScriptException:System.err: System.err:调用模块函数时出错 System.err:System.err: 无法编译 /data/data/org.nativescript.ngsample/files/app/bundle.js System.err: System.err: SyntaxError: Unexpected token ! System.err:文件: “file:///data/data/org.nativescript.ngsample/files/app/bundle.js, 行:292,列:24 System.err:System.err:StackTrace:System.err: 框架:函数:'require',文件:'',行:1,列:266 System.err: 框架:功能:'', 文件:'file:///data/data/org.nativescript.ngsample/files/app/starter.js', 行:3,列:1 System.err:帧:函数:'require',文件:'', 行:1,列:266 System.err:System.err:System.err:SyntaxError: 意外的标记 ! System.err:文件:“,行:1,列:265 System.err:System.err:StackTrace:System.err:帧: 函数:'require',文件:'',行:1,列:266 System.err: 框架:功能:'', 文件:'file:///data/data/org.nativescript.ngsample/files/app/starter.js', 行:3,列:1 System.err:帧:函数:'require',文件:'', 行:1,列:266 System.err:System.err:System.err:SyntaxError: 意外的标记 ! System.err:文件:“,行:1,列:265 System.err:System.err:StackTrace:System.err:帧: 函数:'require',文件:'',行:1,列:266 System.err: 框架:功能:'', 文件:'file:///data/data/org.nativescript.ngsample/files/app/starter.js', 行:3,列:1 System.err:帧:函数:'require',文件:'', 行:1,列:266 System.err:System.err:at com.tns.Runtime.runModule(Native Method) System.err: at com.tns.Runtime.runModule(Runtime.java:624) System.err: 在 com.tns.Runtime.run(Runtime.java:616) System.err: 在 com.tns.NativeScriptApplication.onCreate(NativeScriptApplication.java:21) System.err:在 android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1154) System.err:在 android.app.ActivityThread.handleBindApplication(ActivityThread.java:5871) System.err: ... 8 更多成功同步的应用程序 设备 emulator-5554 上的 org.nativescript.ngsample。
tsconfig.json:
"compileOnSave": false,
"compilerOptions":
"importHelpers": true,
"outDir": "./dist/out-tsc",
"baseUrl": "src",
"sourceMap": true,
"declaration": false,
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es5",
"typeRoots": [
"node_modules/@types"
],
"lib": [
"es2016",
"dom"
],
"module": "es2015"
【问题讨论】:
你的意思是它不起作用?究竟显示了什么错误?你能也显示你的导入语句吗? @Manoj 发布了它。谢谢!! 你也可以显示你的tsconfig.json
吗?
@Manoj 完成!!谢谢
尝试将 "baseUrl": ".", "paths": "~/*": [ "./src/*" ]
添加到您的 tsconfig.json 并使用 import User from '~/app/model/User';
【参考方案1】:
尝试添加此代码:-
import Injectable from "@angular/core";
import HttpClient, HttpHeaders from "@angular/common/http";
import User from 'app/model/User';
@Injectable(
providedIn: "root"
)
export class UserLoginService
public user: User;
constructor()
this.user = new User();
login(name: string, password: string, imTid: string): Observable<UiInfo>
console.log(name);
return ;
【讨论】:
【参考方案2】:谢谢大家。解决方案只是将路径更改为:
import User from "../../../../model/User";
【讨论】:
以上是关于来自另一个路径的模型类在 NativeScript 中引发错误调用模块的主要内容,如果未能解决你的问题,请参考以下文章