2016-11-05 4 views
6

Я создаю веб-часть рамки Sharepoint, и я пытаюсь использовать Aurelia в качестве моей инфраструктуры JavaScript.Приложение Aurelia «Hello World» не работает вообще

В основном я создал веб-часть рамки Sharepoint, которая при создании с Йоменом создает это folder structure.

Тогда мои файлы (только простой привет мир):

app.html

<template> 
    ${message} 
</template> 

app.js

export class App { 
    message = 'hello world'; 
} 

main.ts

import {Aurelia} from 'aurelia-framework'; 

export function configure(aurelia) { 
    aurelia.use 
    .standardConfiguration() 
    .developmentLogging(); 

    aurelia.start().then(a => a.setRoot()); 
} 

индекс .html

<div aurelia-app> 
    <h1>Loading...</h1> 
    <h2> ftw </h2> 
    <script src="jspm_packages/system.js"></script> 
    <script src="config.js"></script> 
    <script> 
     System.import('aurelia-bootstrapper'); 
    </script> 

    </div> 

И HelloWorld WebPart:

import { 
    BaseClientSideWebPart, 
    IPropertyPaneSettings, 
    IWebPartContext, 
    PropertyPaneTextField 
} from '@microsoft/sp-client-preview'; 

import styles from './HelloWorld.module.scss'; 
import * as strings from 'helloWorldStrings'; 
import { IHelloWorldWebPartProps } from './IHelloWorldWebPartProps'; 
import { configure } from './main'; 
import * as systemjs from 'systemjs'; 
import {Aurelia} from 'aurelia-framework'; 

export default class HelloWorldWebPart extends BaseClientSideWebPart<IHelloWorldWebPartProps> { 

    public constructor(context: IWebPartContext) { 
    super(context); 
    } 

    public render(): void { 
    if (this.renderedOnce === false) { 
     this.domElement.innerHTML = require('./index.html'); 
    } 
    } 

    protected get propertyPaneSettings(): IPropertyPaneSettings { 
    return { 
     pages: [ 
     { 
      header: { 
      description: strings.PropertyPaneDescription 
      }, 
      groups: [ 
      { 
       groupName: strings.BasicGroupName, 
       groupFields: [ 
       PropertyPaneTextField('description', { 
        label: strings.DescriptionFieldLabel 
       }) 
       ] 
      } 
      ] 
     } 
     ] 
    }; 
    } 
} 

код делает HTML на странице, но без сообщения.

Я не вижу ошибок в консоли браузера.

Я установил Aurelia с NPM no jspm. Выполнение gulp serve не обнаруживает ошибок компиляции.

Я также создал файл типизации «aurelia.d.ts» в поддиректории типов.

Я думаю, что моя основная проблема заключается в index.html, так как он имеет ссылку на 2 файла JavaScript, но я не уверен, как ссылаться на них, потому что они находятся внутри папки модулей NPM, и я не думаю они развертываются при выполнении gulp serve.

И, кстати, вот мой config.json:

{ 
    "entries": [ 
    { 
     "entry": "./lib/webparts/helloWorld/HelloWorldWebPart.js", 
     "manifest": "./src/webparts/helloWorld/HelloWorldWebPart.manifest.json", 
     "outputPath": "./dist/hello-world.bundle.js" 
    } 
    ], 
    "externals": { 
    "@microsoft/sp-client-base": "node_modules/@microsoft/sp-client-base/dist/sp-client-base.js", 
    "@microsoft/sp-client-preview": "node_modules/@microsoft/sp-client-preview/dist/sp-client-preview.js", 
    "@microsoft/sp-lodash-subset": "node_modules/@microsoft/sp-lodash-subset/dist/sp-lodash-subset.js", 
    "office-ui-fabric-react": "node_modules/office-ui-fabric-react/dist/office-ui-fabric-react.js", 
    "react": "node_modules/react/dist/react.min.js", 
    "react-dom": "node_modules/react-dom/dist/react-dom.min.js", 
    "aurelia": "node_modules/aurelia-framework/dist/aurelia-framework.js", 
    "systemjs" : "node_modules/systemjs/dist/systemjs/system.js" 
    }, 
    "localizedResources": { 
    "helloWorldStrings": "webparts/helloWorld/loc/{locale}.js" 
    } 
} 

Ошибки в консоли:

FetchProvider.ts:30 GET https://softwares-macbook-pro.local:4321/sites/workbench/_api/Microsoft.SharePoint.Portal.SuiteNavData.GetSuiteNavData?v=2&Locale=undefined 404 (Not Found)FetchProvider.fetch @ FetchProvider.ts:30BasicHttpClient.fetchCore @ BasicHttpClient.ts:68HttpClient._fetchWithInstrumentation @ HttpClient.ts:183HttpClient.fetch @ HttpClient.ts:141HttpClient.get @ HttpClient.ts:154OnPremSuiteNavDataSource.loadData @ OnPremSuiteNavDataSource.ts:42SuiteNavManager._loadSuiteNavFromServer @ SuiteNavManager.ts:148SuiteNavManager._getSuiteNavModel @ SuiteNavManager.ts:129SuiteNavManager.loadSuiteNav @ SuiteNavManager.ts:106(anonymous function) @ Shell.ts:164Shell._startApplication @ Shell.ts:145Shell.start @ Shell.ts:141(anonymous function) @ SPModuleLoader.ts:178 TraceLogger.ts:147 [OnPremSuiteNavDataSource] Failed to retrieve Hybrid SuiteNavData TraceLogger.ts:147 [SuiteNavManager] SuiteNavManager loadData Failed to retrieve Hybrid SuiteNavData FetchProvider.ts:30 POST https://softwares-macbook-pro.local:4321/sites/workbench/_api/contextinfo 405 (Method Not Allowed)FetchProvider.fetch @ FetchProvider.ts:30DigestCache.fetchDigest @ DigestCache.ts:73HttpClient.fetch @ HttpClient.ts:129HttpClient.post @ HttpClient.ts:167SPOSuiteNavDataSource.loadData @ SPOSuiteNavDataSource.ts:41SuiteNavManager._loadSuiteNavFromServer @ SuiteNavManager.ts:153SuiteNavManager._getSuiteNavModel @ SuiteNavManager.ts:129SuiteNavManager.loadSuiteNav @ SuiteNavManager.ts:106(anonymous function) @ Shell.ts:164Shell._startApplication @ Shell.ts:145Shell.start @ Shell.ts:141(anonymous function) @ SPModuleLoader.ts:178 FetchProvider.ts:30 GET https://softwares-macbook-pro.local:4321/sites/workbench/_api/web/GetClientSideWebParts 404 (Not Found)FetchProvider.fetch @ FetchProvider.ts:30BasicHttpClient.fetchCore @ BasicHttpClient.ts:68HttpClient._fetchWithInstrumentation @ HttpClient.ts:183HttpClient.fetch @ HttpClient.ts:141HttpClient.get @ HttpClient.ts:154(anonymous function) @ ClientSideWebPartManager.ts:335ServiceScope.whenFinished @ ServiceScope.ts:174(anonymous function) @ ClientSideWebPartManager.ts:333ClientSideWebPartManager.fetchWebParts @ ClientSideWebPartManager.ts:327CanvasStore._fetchWebParts @ CanvasStore.ts:509CanvasStore @ CanvasStore.ts:93Canvas @ Canvas.ts:59Page.componentDidMount @ Page.tsx:28target.(anonymous function) @ index.js:153notifyAll @ react.js:869close @ react.js:12870closeAll @ react.js:15699perform @ react.js:15646batchedMountComponentIntoNode @ react.js:10882perform @ react.js:15633batchedUpdates @ react.js:8456batchedUpdates @ react.js:13706_renderNewRootComponent @ react.js:11076ReactMount__renderNewRootComponent @ react.js:12353_renderSubtreeIntoContainer @ react.js:11150render @ react.js:11170React_render @ react.js:12353SpWebpartWorkbench.onRender @ spWebpartWorkbench.tsx:44ClientSideApplication.render @ ClientSideApplication.ts:83(anonymous function) @ Shell.ts:165Shell._startApplication @ Shell.ts:145Shell.start @ Shell.ts:141(anonymous function) @ SPModuleLoader.ts:178 TraceLogger.ts:147 [SuiteNavManager] SuiteNavManager loadData Failed to retrieve SPO SuiteNavData TraceLogger.ts:145 [ClientSideWebPartManager] SyntaxError: Unexpected token C in JSON at position 0TraceLogger._writeToConsole @ TraceLogger.ts:145TraceLogger._log @ TraceLogger.ts:117TraceLogger.logError @ TraceLogger.ts:42(anonymous function) @ ClientSideWebPartManager.ts:355 TraceLogger.ts:147 [ClientSideWebPartManager] Successfully loaded modules for webpart 7fb7d3c1-c91b-4038-8e2b-2c7dc5376161 TraceLogger.ts:147 [BaseClientSideWebPart] Constructed web part: 568966e1-6496-4915-927f-ce874bbe7d27 OnPremSuiteNavDataSource.ts:65 Uncaught (in promise) Error: Failed to retrieve Hybrid SuiteNavData(…)OnPremSuiteNavDataSource._logAndThrowSuiteNavLoadingError @ OnPremSuiteNavDataSource.ts:65(anonymous function) @ OnPremSuiteNavDataSource.ts:45 Beacon.js:372 Beacon: Logged to UserEngagement with properties: {"EngagementName":"SPPages.SPThemeProvider.loadData.Start","Properties":"{\"appver\":\"\"}","Duration":0,"LogType":0,"ClientTime":1478836974552,"Source":"ClientV2Reliability"}

enter image description here

+0

Если вы изменили '$ {message}' по фактическому HTML, чтобы проверить, отображает ли это? – nicovank

+0

Нет, он не хочет, чтобы помочь мне заставить его работать? мы должны попробовать офлайн? –

+1

Вы установили с NPM, а не JSPM, но у вас есть файл config.js, который вы используете с SystemJS. Вы уверены, что ваши библиотеки загружаются и связаны? Если вы не установили Aurelia через System.JS, вам пришлось бы вручную настроить ваши config.js, чтобы указать на ваши модули NPM. –

ответ

2

без указания атрибута в aurelia-app, он загружает по по умолчанию app.html и app.js. Так что вы хотите сделать, это изменить его на:

<div aurelia-app="main"> 

, так что нагрузки main.js и фактически начинается Аурелия.

Here's a link to the documentation о самообслуживании aurelia.

+0

спасибо, но это тоже не сработало, у меня все еще нет ошибок в консоли, я положу это в github, чтобы проверить это, просто gimme какое-то время –

+0

ДЕЙСТВИТЕЛЬНО даже регистрируется на консоли? Поскольку вы используете ведение журнала разработки, он должен по крайней мере показывать журналы из фреймворка. – nicovank

+0

да, но очень сложно обмениваться журналами, я обновил вопрос с помощью 5 ошибок, по крайней мере, 4 из них, похоже, из рамок sharepoint, работающих локально, а не из моего кода, есть тот, который может быть из моего кода, но я не уверен, я загружу фотографию сейчас в quesiton. –