2

I followed the Nativescript steps for creating a new code sharing project here and I would like to use sass. I tried both for ones that have the NatievScript theme as well as the one that does not:

ng new -c=@nativescript/schematics no-theme-project --shared --no-theme

or

ng new -c=@nativescript/schematics sass-no-theme-project --shared --style=scss --no-theme

For this Post I chose No Theme. When it finishes creating a new project the folder is as shown:

enter image description here

Inside Desktop/TestProjects/sass-no-theme-project I install the node modules:

npm install

When running ng serve --o the application builds and loads up as expected in the browser. For NativeScript mobile however for Android (have not tested iOS yet) the application crashes with an error. I have tried both tns run android as well as using the NativeScript SideKick to build however they end up with the same results. I have also tried local and cloud builds.

Device Used:

Physical Samsung A5: Not emulator

Error On Mobile Device In Logs:

An uncaught Exception occurred on "main" thread.
java.lang.RuntimeException: Unable to create application com.tns.NativeScriptApplication: com.tns.NativeScriptException: Application entry point file not found. Please specify the file in package.json otherwise make sure the file index.js or bootstrap.js exists.\nIf using typescript make sure your entry point file is transpiled to javascript.
    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6065)
    at android.app.ActivityThread.-wrap1(Unknown Source:0)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1764)
    at android.os.Handler.dispatchMessage(Handler.java:105)
    at android.os.Looper.loop(Looper.java:164)
    at android.app.ActivityThread.main(ActivityThread.java:6944)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
Caused by: com.tns.NativeScriptException: Application entry point file not found. Please specify the file in package.json otherwise make sure the file index.js or bootstrap.js exists.\nIf using typescript make sure your entry point file is transpiled to javascript.
    at com.tns.Module.bootstrapApp(Module.java:311)
    at com.tns.Runtime.run(Runtime.java:544)
    at com.tns.NativeScriptApplication.onCreate(NativeScriptApplication.java:21)
    at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1125)
    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6062)
    ... 8 more
Caused by: com.tns.NativeScriptException: Failed to find module: "./", relative to: app//
    at com.tns.Module.resolvePathHelper(Module.java:146)
    at com.tns.Module.bootstrapApp(Module.java:309)
    ... 12 more

Logs In Command Line and NativeScript Client

[18-11-10 17:43:53.724] (CLI) [./main.ns.ts] 1.22 KiB {bundle} [built]
[18-11-10 17:43:53.724] (CLI) [./package.json] 123 bytes {bundle} [optional] [built]
[18-11-10 17:43:53.724] (CLI)     + 403 hidden modules
[18-11-10 17:43:53.724] (CLI) ERROR in Patterns must be a string or an array of strings
[18-11-10 17:43:53.724] (CLI)  Webpack compilation complete.
[18-11-10 17:43:53.724] (CLI)  Executing webpack failed with exit code 2.
[18-11-10 17:43:53.724] (CLI)  # tns build android
[18-11-10 17:43:53.724] (CLI) ### Description
[18-11-10 17:43:53.724] (CLI) clean-webpack-plugin: /mnt/storage/builds/_/1bfec9e7b462a1843535f909d892c70d2010e1cf/5.0.0/5.0.0/no-sass-project/platforms/android/app/src/main/assets/app/**/* has been removed.
[18-11-10 17:43:53.724] (CLI) Executing webpack failed with exit code 2.
[18-11-10 17:43:53.724] (CLI) bc_GgX4lpDXQFHYT4ydmJ
[18-11-10 17:43:56.917] (CLI) Unable to apply changes on device: 5210ffc964ca44f3. Error is: Build failed..
[18-11-10 17:43:56.920] Error detected during LiveSync on 5210ffc964ca44f3 for C:\Users\userName\Desktop\no-sass-project. Error: Build failed.
[18-11-10 17:43:56.925] (CLI) Executing after-watch hook from C:\Users\userName\Desktop\no-sass-project\hooks\after-watch\nativescript-dev-sass.js
[18-11-10 17:43:56.925] (CLI) Executing after-watch hook from C:\Users\userName\Desktop\no-sass-project\hooks\after-watch\nativescript-dev-typescript.js
[18-11-10 17:43:56.925] (CLI) Executing after-watch hook from C:\Users\userName\Desktop\no-sass-project\hooks\after-watch\nativescript-dev-webpack.js
[18-11-10 17:43:56.925] (CLI) Stopping webpack watch

With Nativescript and Angular creating a blank new project for me I would assume it is suppose to be a HelloWorld project that works in Web, iOS, and Android right out of the gate.

UPDATE

I tried following the troubleshoot guide here such as reinstalling JDK 8 and that however the problem persists. I got it to run once, it failed and after about 4-10 minutes it rebuilt and was working. Since then I can not get it to work a second time. This leads to me believe there maybe a configuration issues somewhere such as the tsconfig json files. Taken a look in them and they seem to be fine.

4

2 回答 2

0

当您构建代码共享项目时,您应该使用该--bundle标志。所以你的命令应该是:

tns run android --bundle或者tns run ios --bundle

如果您一直忘记--bundle标志,那么您可以使用package.json中提供的脚本并运行: npm run androidnpm run ios

此外,如果您的项目使用 TypeScript 2.7,那么您可能需要将其更新到 2.8

附带说明:您不需要moduleId在代码共享项目中,因为 webpack 会为您处理这个问题。

于 2018-11-12T08:42:22.200 回答
0

nativescript 团队似乎很难,因为它所依赖的包不断变化。这是我使用的 package.json 设置,感谢来自 nativescript 团队的@NickIliev、@skopekreep 和良好的旧调试。如果你使用这个设置,你应该没问题。

以后要小心更新软件包并在提交 package.json 之前进行测试。

除了主要软件包,我建议您小心更新并确保您测试:

typescript @types/jasmine nativescript-dev-webpack tns-core-modules

{
  "name": "myproject",
  "nativescript": {
  "id": "org.nativescript.myproject",
    "tns-android": {
    "version": "5.0.0"
   }
},
"version": "0.0.0",
"scripts": {
  "ng": "ng",
  "start": "ng serve",
  "build": "ng build",
  "test": "ng test",
  "lint": "ng lint",
  "e2e": "ng e2e",
  "android": "tns run android --bundle",
  "ios": "tns run ios --bundle"
},
"private": true,
"dependencies": {
  "@angular/animations": "~6.1.0",
  "@angular/common": "~6.1.0",
  "@angular/compiler": "~6.1.0",
  "@angular/core": "~6.1.0",
  "@angular/forms": "~6.1.0",
  "@angular/http": "~6.1.0",
  "@angular/platform-browser": "~6.1.0",
  "@angular/platform-browser-dynamic": "~6.1.0",
  "@angular/router": "~6.1.0",
  "core-js": "^2.5.4",
  "nativescript-angular": "~6.1.0",
  "nativescript-theme-core": "~1.0.4",
  "reflect-metadata": "~0.1.8",
  "rxjs": "^6.0.0",
  "tns-core-modules": "~5.0.2",
  "zone.js": "^0.8.26"
},
"devDependencies": {
  "@angular-devkit/build-angular": "^0.8.0",
  "@angular/cli": "^6.2.0",
  "@angular/compiler-cli": "^7.0.3",
  "@nativescript/schematics": "~0.4.0",
  "@types/jasmine": "2.8.6",
  "@types/jasminewd2": "~2.0.3",
  "@types/node": "~8.9.4",
  "codelyzer": "~4.2.1",
  "jasmine-core": "~2.99.1",
  "jasmine-spec-reporter": "~4.2.1",
  "karma": "~1.7.1",
  "karma-chrome-launcher": "~2.2.0",
  "karma-coverage-istanbul-reporter": "~2.0.0",
  "karma-jasmine": "~1.1.1",
  "karma-jasmine-html-reporter": "^0.2.2",
  "nativescript-dev-sass": "~1.6.0",
  "nativescript-dev-typescript": "~0.7.0",
  "nativescript-dev-webpack": "^0.17.0",
  "protractor": "~5.3.0",
  "ts-node": "~5.0.1",
  "tslint": "~5.9.1",
  "typescript": "^3.1.6"
}

}

步骤: 1.安装最新版本的Node JS

  1. 安装最新版本的 NPM

  2. npm i -g @angular/cli

  3. npm i -g @nativescript/schematics

  4. 进入文件夹并替换 package.json,确保将 name 和 id 更改为您的项目名称

  5. npm 安装

  6. tns 运行 android --bundle

于 2018-11-12T03:32:27.823 回答