如何在aurelia中使用微风?

时间:2016-11-22 07:49:48

标签: breeze aurelia

我是aurelia的新手,我使用skeleton-typescript-aspnetcore骨架项目来构建我的第一个应用程序。骨架工作正常,但是当我按照aurelia-breeze插件指南将它集成到我的应用程序时,我使用

import breeze from 'breeze';

在ts文件上,但是有一个错误:找不到模块' breeze'。我google了这么多,有人提到d.ts文件丢失了,我把它从git(https://github.com/jdanyow/aurelia-breeze/blob/master/dist/aurelia-breeze.d.ts)复制到typings文件夹,但是d.ts文件在第一行出现了另一个错误,找不到模块'微风的客户机':

import breeze from 'breeze-client';

我检查了nmp文件夹(wwwroot / nmp),aurelia-breeze和breeze-client都在那里,在package.json中也一样。

我将aurelia-breeze.d.ts与typings文件夹下的其他d.ts文件进行了比较, 这些文件随骨架一起命名为index.d.ts,而typings.json则用于decalaration。

所以我认为错误应该是由打字配置造成的,而且我用谷歌搜索了很长时间,但是没有答案,你能告诉我如何让它工作吗?提前谢谢。

2 个答案:

答案 0 :(得分:0)

我不在我的Aurelia应用程序中使用TypeScript,但我遇到了集成微风的相同问题。最后,我通过将其添加为一个简单的脚本而不是从node_modules(或jspm_packages,根据您使用的那个)加载它来解决它(或者更确切地说找到了这个解决方法)。

这是我的新main.js文件:

export function configure(aurelia) {    
    aurelia.use
        .standardConfiguration()        
        .plugin('aurelia-knockout');

    return aurelia.start().then(() => {
        require(["../scripts/lib/breeze.debug"], function(breeze) {
            require([
                "../scripts/lib/breeze.savequeuing",
            ], function(savequeuing){
                aurelia.setRoot();
            });             
        });                     
    });    
}

希望这会有所帮助。在我的情况下,我甚至在微风本身加载后整合了微风的breeze.savequeuing插件。可能有更好的方法来做到这一点。

另请注意,我使用“require”作为模块加载器。我使用Aurelia CLI,所以我将它设置在“build”下的aurelia.json文件中,如下所示:

"loader": {
      "type": "require",
      "configTarget": "vendor-bundle.js",
      "includeBundleMetadataInConfig": "auto",
      "config": {
        "waitSeconds": 0,
        "paths": {
          "jquery": "../scripts/lib/cdn/jquery-3.1.0.min",
          "knockout": "../scripts/lib/knockout-3.4.0"          
        }
      },
....
}

并在“捆绑”下如下:

     {
        "name": "vendor-bundle.js",
        "prepend": [
          "node_modules/bluebird/js/browser/bluebird.core.js",          
          "scripts/lib/require.js"
        ],
 ...
}

答案 1 :(得分:0)

要将breezejs客户端与aurelia一起使用,您必须执行以下操作

  1. 安装所需的软件包。
  2. npm install breeze-client --save
    npm install aurelia-breeze --save
    
    1. 配置模块加载器的依赖项。

      在我的情况下,我使用amd和requirejs,因此依赖关系将如下...

    2. paths...
      
      "aurelia-breeze":'../node_modules/aurelia-breeze/dist/amd/aurelia-breeze'
      "breeze-client": '../node_modules/breeze-client/breeze.base.min'
      "breeze.modelLibrary": '../node_modules/breeze-client/breeze.modelLibrary.backingStore'
      "breeze.dataService": '../node_modules/breeze-client/breeze.dataService.webApi'
      "breeze.uriBuilder": '../node_modules/breeze-client/breeze.uriBuilder.json'
      
      
      shims...
      
      'aurelia-breeze': {
              exports: 'BreezeObjectObserver',
              deps: ['breeze-client', 'breeze.modelLibrary', 'breeze.dataService', 'breeze.uriBuilder']
            }
      
      'breeze-client': {
              exports: 'breeze'
            }
      

      (requirejs config.js文件和aurelia.json下面包含的完整文件)

      1. 根据需要导入并初始化TypeScript项目中的库
      2. import * as breeze from 'breeze-client'
        
          breeze.NamingConvention.camelCase.setAsDefault();  
          breeze.config.initializeAdapterInstance('modelLibrary',
        'backingStore', true);
        
        1. 完成了!!你现在可以使用微风。即。
        2. const entityManager = new
          EntityManager'http://zzaapi.azurewebsites.net/breeze/zza')   const
          entityQuery = EntityQuery.from(‘Customers’);
          
          entityManager.executeQuery(entityQuery).then(queryResult => 
          console.log(queryResult.results));
          

          (来自Brian Noyes关于https://www.pluralsight.com/courses/building-data-centric-apps-angular-breezejs的优秀课程)

          PS:我将发布我的requirejs config.js文件的全部内容以及aurelia.json for aurelia cli build,看看并注意prepends,preload和shims。

          //-------------------config.js----------------------------------------------
              require.config(
                {
                  baseUrl: 'src',
                  paths: {
          
                    pipelines: 'resources/pipelines',
                    templates: 'resources/templates',
                    interceptors: 'resources/interceptors',
          
                    bluebird: '../node_modules/bluebird/js/browser/bluebird.min',
                    bootstrap: '../node_modules/bootstrap/dist/js/bootstrap.min',
          
                    "aurelia-animator-css": '../node_modules/aurelia-animator-css/dist/amd/aurelia-animator-css',
                    "aurelia-binding": '../node_modules/aurelia-binding/dist/amd/aurelia-binding',
                    "aurelia-bootstrapper": '../node_modules/aurelia-bootstrapper/dist/amd/aurelia-bootstrapper',
                    "aurelia-breeze": '../node_modules/aurelia-breeze/dist/amd/aurelia-breeze',
                    "aurelia-computed": '../node_modules/aurelia-computed/dist/amd/aurelia-computed',
                    "aurelia-dependency-injection": '../node_modules/aurelia-dependency-injection/dist/amd/aurelia-dependency-injection',
                    "aurelia-event-aggregator": '../node_modules/aurelia-event-aggregator/dist/amd/aurelia-event-aggregator',
                    "aurelia-fetch-client": '../node_modules/aurelia-fetch-client/dist/amd/aurelia-fetch-client',
                    "aurelia-framework": '../node_modules/aurelia-framework/dist/amd/aurelia-framework',
                    "aurelia-history": '../node_modules/aurelia-history/dist/amd/aurelia-history',
                    "aurelia-history-browser": '../node_modules/aurelia-history-browser/dist/amd/aurelia-history-browser',
                    "aurelia-http-client": '../node_modules/aurelia-http-client/dist/amd/aurelia-http-client',
                    "aurelia-loader": '../node_modules/aurelia-loader/dist/amd/aurelia-loader',
                    "aurelia-loader-default": '../node_modules/aurelia-loader-default/dist/amd/aurelia-loader-default',
                    "aurelia-logging": '../node_modules/aurelia-logging/dist/amd/aurelia-logging',
                    "aurelia-logging-console": '../node_modules/aurelia-logging-console/dist/amd/aurelia-logging-console',
                    "aurelia-metadata": '../node_modules/aurelia-metadata/dist/amd/aurelia-metadata',
                    "aurelia-pal": '../node_modules/aurelia-pal/dist/amd/aurelia-pal',
                    "aurelia-pal-browser": '../node_modules/aurelia-pal-browser/dist/amd/aurelia-pal-browser',
                    "aurelia-path": '../node_modules/aurelia-path/dist/amd/aurelia-path',
                    "aurelia-polyfills": '../node_modules/aurelia-polyfills/dist/amd/aurelia-polyfills',
                    "aurelia-router": '../node_modules/aurelia-router/dist/amd/aurelia-router',
                    "aurelia-route-recognizer": '../node_modules/aurelia-route-recognizer/dist/amd/aurelia-route-recognizer',
                    "aurelia-task-queue": '../node_modules/aurelia-task-queue/dist/amd/aurelia-task-queue',
                    "aurelia-templating": '../node_modules/aurelia-templating/dist/amd/aurelia-templating',
                    "aurelia-templating-binding": '../node_modules/aurelia-templating-binding/dist/amd/aurelia-templating-binding',
          
                    "breeze-client": '../node_modules/breeze-client/breeze.base.min',
                    "breeze.modelLibrary": '../node_modules/breeze-client/breeze.modelLibrary.backingStore',
                    "breeze.dataService": '../node_modules/breeze-client/breeze.dataService.webApi',
                    "breeze.uriBuilder": '../node_modules/breeze-client/breeze.uriBuilder.json',
          
                    jquery: '../node_modules/jquery/dist/jquery.min',
                    lodash: '../node_modules/lodash/lodash.min',
                    moment: '../node_modules/moment/min/moment-with-locales.min',
                    numeral: '../node_modules/numeral/min/numeral.min',
                    pouchdb: '../node_modules/pouchdb/dist/pouchdb.min',
                    text: '../node_modules/text/text',
                    toastr: '../node_modules/toastr/build/toastr.min',
          
                    "jquery-ui": '../node_modules/jquery-ui/dist/jquery-ui.min'
          
                  },
                  packages: [
                    {
                      name: 'aurelia-dialog',
                      location: '../node_modules/aurelia-dialog/dist/amd',
                      main: 'aurelia-dialog'
                    },
                    {
                      name: 'aurelia-templating-resources',
                      location: '../node_modules/aurelia-templating-resources/dist/amd',
                      main: 'aurelia-templating-resources'
                    },
                    {
                      name: 'aurelia-templating-router',
                      location: '../node_modules/aurelia-templating-router/dist/amd',
                      main: 'aurelia-templating-router'
                    },
                    {
                      name: 'aurelia-testing',
                      location: '../node_modules/aurelia-testing/dist/amd',
                      main: 'aurelia-testing'
                    },
                    {
                      name: 'aurelia-validation',
                      location: '../node_modules/aurelia-validation/dist/amd',
                      main: 'aurelia-validation'
                    },
                    {
                      name: 'popper.js',
                      location: '../node_modules/popper.js/dist/umd/',
                      main: 'popper.min'
                    }
                  ],
                  shim: {
                    'aurelia-breeze': {
                      exports: 'BreezeObjectObserver',
                      deps: ['breeze-client', 'breeze.modelLibrary', 'breeze.dataService', 'breeze.uriBuilder']
                    },
                    'breeze-client': {
                      exports: 'breeze'
                    },
                    bootstrap: {
                      exports: '$.fn.button',
                      deps: ['jquery', 'popper.js']
                    },
                    jquery: {
                      exports: '$'
                    },
                    "jquery-ui": {
                      exports: '$.autocomplete',
                      deps: ['jquery']
                    },
                    lodash: {
                      exports: '_'
                    },
                    "popper.js": {
                      exports: 'Popper'
                    },
                    toastr: {
                      deps: ['jquery']
                    }
          
                  }
                });
          
              require(['aurelia-bootstrapper']);
          
          //-------------------aurelia.json----------------------------------------------
              {
                "name": "mgame",
                "type": "project:application",
                "bundler": {
                  "id": "cli",
                  "displayName": "Aurelia-CLI"
                },
                "platform": {
                  "id": "aspnetcore",
                  "displayName": "ASP.NET Core",
                  "index": "index.html",
                  "baseDir": ".",
                  "output": "dist"
                },
                "transpiler": {
                  "id": "typescript",
                  "displayName": "TypeScript",
                  "fileExtension": ".ts",
                  "dtsSource": [ "./custom_typings/**/*.d.ts" ],
                  "source": "src/**/*.ts"
                },
                "markupProcessor": {
                  "id": "maximum",
                  "displayName": "Maximum Minification",
                  "fileExtension": ".html",
                  "source": "src/**/*.html"
                },
                "cssProcessor": {
                  "id": "sass",
                  "displayName": "Sass",
                  "fileExtension": ".scss",
                  "source": "src/**/*.scss"
                },
                "editor": {
                  "id": "visualstudio",
                  "displayName": "Visual Studio"
                },
                "testFramework": {
                  "id": "jasmine",
                  "displayName": "Jasmine"
                },
                "unitTestRunner": {
                  "id": "karma",
                  "displayName": "Karma",
                  "source": "test/unit/**/*.ts"
                },
                "e2eTestRunner": {
                  "id": "protractor",
                  "displayName": "Protractor",
                  "source": "test/e2e/src/**/*.ts",
                  "dist": "test/e2e/dist/",
                  "typingsSource": [ "node_modules//@types/**/*.d.ts", "custom_typings/**/*.d.ts" ]
                },
                "paths": {
                  "root": "src",
                  "resources": "resources",
                  "elements": "resources/elements",
                  "pipelines": "resources/pipelines",
                  "templates": "resources/templates",
                  "attributes": "resources/attributes",
                  "interceptors": "resources/interceptors",
                  "valueConverters": "resources/converters",
                  "bindingBehaviors": "resources/behaviors",
                  "assets": [
                    {
                      "src": "node_modules/jquery-ui/dist/images/*",
                      "dest": "/../images"
                    },
                    {
                      "src": "node_modules/font-awesome/css/font-awesome.min.css",
                      "dest": "/css"
                    },
                    {
                      "src": "node_modules/font-awesome/fonts/*",
                      "dest": "/fonts"
                    }
                  ]
                },
                "build": {
                  "targets": [
                    {
                      "id": "aspnetcore",
                      "displayName": "ASP.NET Core",
                      "index": "index.html",
                      "baseDir": ".",
                      "output": "dist"
                    }
                  ],
                  "loader": {
                    "type": "require",
                    "configTarget": "vendor-bundle.js",
                    "includeBundleMetadataInConfig": "auto",
                    "plugins": [
                      {
                        "name": "text",
                        "extensions": [
                          ".html",
                          ".css"
                        ],
                        "stub": true
                      }
                    ]
                  },
                  "options": {
                    "minify": "stage & prod",
                    "sourcemaps": "dev & stage"
                  },
                  "bundles": [
                    {
                      "name": "app-bundle.js",
                      "source": [
                        "[**/*.js]",
                        "**/*.{css,html}"
                      ]
                    },
                    {
                      "name": "vendor-bundle.js",
                      "prepend": [
                        "node_modules/bluebird/js/browser/bluebird.min.js",
                        "node_modules/popper.js/dist/umd/popper.min.js",
                        "node_modules/requirejs/require.js"
                      ],
                      "dependencies": [
                        "jquery",
                        "lodash",
                        "moment",
                        "numeral",
                        "text",
                        {
                          "name": "aurelia-animator-css",
                          "path": "../node_modules/aurelia-animator-css/dist/amd",
                          "main": "aurelia-animator-css"
                        },
                        {
                          "name": "aurelia-binding",
                          "path": "../node_modules/aurelia-binding/dist/amd",
                          "main": "aurelia-binding"
                        },
                        {
                          "name": "aurelia-bootstrapper",
                          "path": "../node_modules/aurelia-bootstrapper/dist/amd",
                          "main": "aurelia-bootstrapper"
                        },
                        {
                          "name": "aurelia-breeze",
                          "path": "../node_modules/aurelia-breeze/dist/amd",
                          "main": "aurelia-breeze",
                          "exports": "BreezeObjectObserver",
                          "deps": [ "breeze-client", "breeze.modelLibrary", "breeze.dataService", "breeze.uriBuilder" ]
                        },
                        {
                          "name": "aurelia-computed",
                          "path": "../node_modules/aurelia-computed/dist/amd",
                          "main": "aurelia-computed"
                        },
                        {
                          "name": "aurelia-dependency-injection",
                          "path": "../node_modules/aurelia-dependency-injection/dist/amd",
                          "main": "aurelia-dependency-injection"
                        },
                        {
                          "name": "aurelia-dialog",
                          "path": "../node_modules/aurelia-dialog/dist/amd",
                          "main": "aurelia-dialog"
                        },
                        {
                          "name": "aurelia-event-aggregator",
                          "path": "../node_modules/aurelia-event-aggregator/dist/amd",
                          "main": "aurelia-event-aggregator"
                        },
                        {
                          "name": "aurelia-fetch-client",
                          "path": "../node_modules/aurelia-fetch-client/dist/amd",
                          "main": "aurelia-fetch-client"
                        },
                        {
                          "name": "aurelia-framework",
                          "path": "../node_modules/aurelia-framework/dist/amd",
                          "main": "aurelia-framework"
                        },
                        {
                          "name": "aurelia-history",
                          "path": "../node_modules/aurelia-history/dist/amd",
                          "main": "aurelia-history"
                        },
                        {
                          "name": "aurelia-history-browser",
                          "path": "../node_modules/aurelia-history-browser/dist/amd",
                          "main": "aurelia-history-browser"
                        },
                        {
                          "name": "aurelia-http-client",
                          "path": "../node_modules/aurelia-http-client/dist/amd",
                          "main": "aurelia-http-client"
                        },
                        {
                          "name": "aurelia-loader",
                          "path": "../node_modules/aurelia-loader/dist/amd",
                          "main": "aurelia-loader"
                        },
                        {
                          "name": "aurelia-loader-default",
                          "path": "../node_modules/aurelia-loader-default/dist/amd",
                          "main": "aurelia-loader-default"
                        },
                        {
                          "name": "aurelia-logging",
                          "path": "../node_modules/aurelia-logging/dist/amd",
                          "main": "aurelia-logging"
                        },
                        {
                          "name": "aurelia-logging-console",
                          "path": "../node_modules/aurelia-logging-console/dist/amd",
                          "main": "aurelia-logging-console"
                        },
                        {
                          "name": "aurelia-metadata",
                          "path": "../node_modules/aurelia-metadata/dist/amd",
                          "main": "aurelia-metadata"
                        },
                        {
                          "name": "aurelia-pal",
                          "path": "../node_modules/aurelia-pal/dist/amd",
                          "main": "aurelia-pal"
                        },
                        {
                          "name": "aurelia-pal-browser",
                          "path": "../node_modules/aurelia-pal-browser/dist/amd",
                          "main": "aurelia-pal-browser"
                        },
                        {
                          "name": "aurelia-path",
                          "path": "../node_modules/aurelia-path/dist/amd",
                          "main": "aurelia-path"
                        },
                        {
                          "name": "aurelia-polyfills",
                          "path": "../node_modules/aurelia-polyfills/dist/amd",
                          "main": "aurelia-polyfills"
                        },
                        {
                          "name": "aurelia-router",
                          "path": "../node_modules/aurelia-router/dist/amd",
                          "main": "aurelia-router"
                        },
                        {
                          "name": "aurelia-route-recognizer",
                          "path": "../node_modules/aurelia-route-recognizer/dist/amd",
                          "main": "aurelia-route-recognizer"
                        },
                        {
                          "name": "aurelia-task-queue",
                          "path": "../node_modules/aurelia-task-queue/dist/amd",
                          "main": "aurelia-task-queue"
                        },
                        {
                          "name": "aurelia-templating",
                          "path": "../node_modules/aurelia-templating/dist/amd",
                          "main": "aurelia-templating"
                        },
                        {
                          "name": "aurelia-templating-binding",
                          "path": "../node_modules/aurelia-templating-binding/dist/amd",
                          "main": "aurelia-templating-binding"
                        },
                        {
                          "name": "aurelia-templating-resources",
                          "path": "../node_modules/aurelia-templating-resources/dist/amd",
                          "main": "aurelia-templating-resources"
                        },
                        {
                          "name": "aurelia-templating-router",
                          "path": "../node_modules/aurelia-templating-router/dist/amd",
                          "main": "aurelia-templating-router"
                        },
                        {
                          "name": "aurelia-testing",
                          "path": "../node_modules/aurelia-testing/dist/amd",
                          "main": "aurelia-testing",
                          "env": "dev"
                        },
                        {
                          "name": "aurelia-validation",
                          "path": "../node_modules/aurelia-validation/dist/amd",
                          "main": "aurelia-validation"
                        },
                        {
                          "name": "bluebird",
                          "path": "../node_modules/bluebird/js/browser",
                          "main": "bluebird.min"
                        },
                        {
                          "name": "bootstrap",
                          "path": "../node_modules/bootstrap/dist",
                          "main": "js/bootstrap.min",
                          "deps": [ "jquery", "popper.js" ],
                          "exports": "$.fn.button",
                          "resources": [
                            "css/bootstrap.min.css"
                          ]
                        },
                        {
                          "name": "breeze-client",
                          "path": "../node_modules/breeze-client",
                          "main": "breeze.base.min",
                          "exports": "breeze"
                        },
                        {
                          "name": "breeze.modelLibrary",
                          "path": "../node_modules/breeze-client",
                          "main": "breeze.modelLibrary.backingStore"
                        },
                        {
                          "name": "breeze.dataService",
                          "path": "../node_modules/breeze-client",
                          "main": "breeze.dataService.webApi"
                        },
                        {
                          "name": "breeze.uriBuilder",
                          "path": "../node_modules/breeze-client",
                          "main": "breeze.uriBuilder.json"
                        },
                        {
                          "name": "jquery-ui",
                          "path": "../node_modules/jquery-ui/dist",
                          "main": "jquery-ui.min",
                          "deps": [ "jquery" ],
                          "exports": "$.autocomplete",
                          "resources": [ "jquery-ui.min.css" ]
                        },
                        {
                          "name": "popper.js",
                          "path": "../node_modules/popper.js/dist/umd",
                          "main": "popper.min",
                          "exports": "Popper"
                        },
                        {
                          "name": "pouchdb",
                          "path": "../node_modules/pouchdb/dist",
                          "main": "pouchdb.min"
                        },
                        {
                          "name": "toastr",
                          "path": "../node_modules/toastr",
                          "main": "toastr",
                          "deps": [ "jquery" ],
                          "resources": [ "build/toastr.min.css" ]
                        }
                      ]
                    }
                  ]
                }
              }