标签: aurelia-cli

部署aurelia.cli构建的应用程序

我已经构建了一个没有后端的简单aurelia网页,现在我有兴趣投入生产.我使用Aurelia-cli进行捆绑,希望这很简单,但我不知道如何继续.我应该将哪些文件上传到服务器以使该网站正常工作?谢谢您的帮助.

aurelia aurelia-cli

16
推荐指数
1
解决办法
1834
查看次数

Bootstrap 4错误"Bootstrap下拉需要Popper.js",使用Aurelia CLI和Require.js

我在使用requirejs和使用TypeScript的Aurelia CLI应用程序(v0.31.1)中配置Bootstrap 4 beta时遇到问题.尝试了几个配置变化后,我继续收到以下控制台错误:

未捕获的错误:Bootstrap下拉列表需要Popper.js

以下是重现的步骤.首先,安装包:

$ npm install --save jquery bootstrap@4.0.0-beta popper.js
Run Code Online (Sandbox Code Playgroud)

接下来,我配置了aurelia.json:

  "jquery",
  {
    "name": "popper.js",
    "path": "../node_modules/popper.js/dist/umd",
    "main": "popper"
  },
  {
    "name": "bootstrap",
    "path": "../node_modules/bootstrap/dist",
    "main": "js/bootstrap.min",
    "deps": [
      "jquery",
      "popper.js"
    ],
    "exports": "$",
    "resources": [
      "css/bootstrap.css"
    ]
  }
Run Code Online (Sandbox Code Playgroud)

请注意上面的配置中:

  • popper.js在bootstrap之前注册
  • 使用UMD模块
  • popper.js被设置为jstery旁边的bootstrap的依赖项

最后,在我的app.ts中:

import 'bootstrap';
Run Code Online (Sandbox Code Playgroud)

使用此配置,使用构建au build工作正常.但运行时,使用au run --watch我得到以下控制台错误:

未捕获的错误:引导下拉需要Popper.js(https://popper.js.org)(defaults.js:19)
未捕获的错误:引导下拉需要Popper.js(https://popper.js.org)(引导. min.js:6)
...再进一步:
未捕获TypeError:plugin.load不是Module的函数.(defaults.js:19)

不幸的是,Bootstrap 4文档只提到了webpack上的说明.搜索Aurelia的Gitter.im频道和StackOverflow也是如此.我找不到关于Aurelia CLI和Require.js的样本.最后,Google点击仅显示嵌入alpha版本的示例(依赖于'tethering'而不是'popper').

关于SO的类似问题,它们有相同的错误,但不适用于我的情况:

requirejs typescript aurelia aurelia-cli bootstrap-4

13
推荐指数
3
解决办法
3万
查看次数

Aurelia CLI包括Bootstrap Glyphicons

我正在尝试在我的Aurelia CLI项目中包含Bootstrap,并且CSS和JS工作正常.

我唯一的问题是glyphicons需要加载字体文件.

我用这个配置:

"dependencies": [
    {
        "name": "bootstrap",
        "path": "../node_modules/bootstrap/dist",
        "main": "js/bootstrap.min",
        "deps": ["jquery"],
        "exports": "$",
        "resources": [
          "css/bootstrap.min.css",
          "fonts/glyphicons-halflings-regular.woff2"
        ]
    }
]
Run Code Online (Sandbox Code Playgroud)

但是我收到包含这一行的错误:

路径:'C:\ Users\randy\Documents\form \node_modules\bootstrap\dist\fonts\glyphicons-halflings-regular.js'

因此即使我包含该.woff2文件,Aurelia 也会尝试将该文件作为JS文件导入.我能做些什么来完成这项工作?CSS确实很好用.

aurelia aurelia-cli

8
推荐指数
2
解决办法
2082
查看次数

如何在Aurelia中使用Amazon Cognito Identity SDK?

我试图让Aurelia中的Amazon Cognito Identity SDK正常工作.我没有很多Javascript经验,并且对各种依赖系统非常不熟悉.

我使用以下方法安装了Cognito SDK: npm install --save amazon-cognito-identity-js

然后,我aurelia_project/aurelia.json按照Aurelia文档中的建议编辑了我的文件,以在build.bundles供应商捆绑依赖项中包含一个新的客户端库依赖项:

"sjcl",
"jsbn",
{
  "name": "aws-sdk",
  "path": "../node_modules/aws-sdk/",
  "main": "dist/aws-sdk"
},
{
  "name": "amazon-cognito-identity-js",
  "path": "../node_modules/amazon-cognito-identity-js/dist",
  "main": "amazon-cognito-identity.min"
}
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试使用au run我运行代码时,我得到错误:Error: ENOENT: no such file or directory, open '/Users/nathanskone/Projects/scc/aurelia-app/src/xmlbuilder.js'

我试图在我的aurelia.json中包含xmlbuilder无济于事.当它被包括在内我最终得到关于lodash的这个错误:Error: ENOENT: no such file or directory, open '/Users/nathanskone/Projects/scc/aurelia-app/src/lodash/object/assign.js'

我还没有找到任何方法来解决lodash错误.

是否有人熟悉Aurelia依赖系统可以提供帮助?

谢谢,内森

编辑#2:当我遇到xmlbuilder/lodash错误时,我在尝试捆绑aws-sdk时遇到了进一步的错误.这是我目前的aurelia.json:

"dependencies": [
  {
    "name": "xmlbuilder",
    "path": "../node_modules/xmlbuilder/lib",
    "main": "index"
  },
  {
    "name": "aws-sdk",
    "path": "../node_modules/aws-sdk",
    "main": "index",
    "resources": ["lib/region_config.json"]
  },
Run Code Online (Sandbox Code Playgroud)

而我目前得到的错误: …

amazon-cognito aurelia aurelia-cli

8
推荐指数
1
解决办法
2124
查看次数

toastr.js如何在Aurelia和Typescript中工作?

我似乎无法让这些工作在一起.我正在使用Aurelia CLI并以类似的方式为其他库成功完成(如select2,spin,moment和numbers).我似乎无法工作.这是我到目前为止所拥有的.

首先,我跑npm install toastr --savetypings install dt~toastr --global --save

aurelia.json,在vendor-bundle.js部分中,我添加了一个依赖项:

  "jquery",
  {
    "name": "toastr",
    "path": "../node_modules/toastr/build",
    "main": "toastr.min",
    "resources": [
      "toastr.min.css"
    ],
    "deps": ["jquery"]
  }
Run Code Online (Sandbox Code Playgroud)

更新:重现的完整步骤

我安装了这些工具的这些版本:node(6.3.0),npm(3.10.3),au(0.17.0)

打开命令提示符并键入:

au new au-toastr
3 (Custom)
2 (Typescript)
3 (Sass)
1 (configure unit testing)
1 (Visual Studio Code)
1 (create project)
1 (install project dependencies)
cd au-toastr
npm install jquery --save
npm install toastr --save
typings install dt~jquery --global --save
typings install dt~toastr --global --save
Run Code Online (Sandbox Code Playgroud)

然后aurelia.json …

typescript toastr aurelia aurelia-cli

7
推荐指数
1
解决办法
2177
查看次数

使用Aurelia-CLI进行CSS管理:每个视图都会加载另一个要在站点范围内强制执行的CSS文件,从而导致冲突

我有一个包含6个视图(html)的项目.每个视图都有一个对应的视图模型(.js)和一个仅适用于该视图的样式表(.css)

aurelia-cli可以很好地通过我的文件递归递归并将所有.js和.css文件捆绑到几个文件中,以便在减少页面加载时间和大小的同时引用它们.因此,如果我有一个带welcome.html,welcome.js和welcome.css的欢迎文件夹,我可以使用以下内容加载welcome.html的CSS,<require from="./welcome.css"></require><head></head>在页面加载时将CSS注入到标记中.

问题是当我导航到下一个视图时,来自welcome.html/welcome.css的CSS规则仍然在<head>网页的标记内,因此仍然被强制执行.在我的应用程序中访问了所有6个视图后,我现在在<style>标记中有6个标记<head>,所有六个页面中的所有规则都在我去的每个页面上强制执行,直到刷新页面为止没有卸载.毋庸置疑,在访问了几页后,整个网站变得混乱垃圾.

所以我的问题是

  1. 为什么这是一个功能
  2. 我错过了最佳实践吗?
  3. 有没有办法在访问时为页面加载css,在导航时卸载它,并在其中加载新页面css?

如果我有一个10页的应用程序,其中包含全局样式表,bootstrap,动画css和字体真棒,那么在一天结束时,我会将14个冲突的样式永久注入到html中,其余的应用程序将被注入.

有什么建议?

javascript aurelia aurelia-binding aurelia-cli aurelia-bundling

7
推荐指数
1
解决办法
1178
查看次数

Aurelia组件未加载视图模型

我正在尝试学习Aurelia我已经设法使用aurelia-cli来设置一个基本的应用程序,我现在正在尝试构建一个自定义组件.我有Aurelia的印象,我可以设置这样的结构:

> /app_folder
> -- /src
> ---- app.html (root component view)
> ---- app.js (root component view-model)
> ---- /components
> ------ /my-component
> -------- my-component.html (custom component view)
> -------- my-component.js (custom component view-model)
Run Code Online (Sandbox Code Playgroud)

在app.js中,我设法使用<require>视图中的标记加载我的组件:

<require from = "./components/my-component/my-component.html"></require>
Run Code Online (Sandbox Code Playgroud)

然后将该标记添加到视图中:

<my-component />
Run Code Online (Sandbox Code Playgroud)

这完全符合我的预期,但该组件似乎忽略了视图模型.

目前我的组件视图如下所示:

<template>
  <h1>${header}</h1>
  <span>Non-dynamic data for testing</span>
</template>
Run Code Online (Sandbox Code Playgroud)

它的视图模型看起来像这样:

export class MyComponent {
  constructor() {
    this.header = 'Service started!';
  }
}
Run Code Online (Sandbox Code Playgroud)

当我运行我的应用程序时,我看到的是带有非动态数据的跨度.控制台的HTML输出如下所示:

<my-component class="au-target" au-target-id="3">
  <h1></h1>
  <span>Non-dynamic data for testing</span>
</my-component>
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我哪里出错了吗?

javascript aurelia aurelia-cli

7
推荐指数
1
解决办法
838
查看次数

是否可以在aurelia视图模型中指定项目根目录中的路径?

我是Aurelia的新手,所以如果这是一个显而易见的问题,或者甚至是不应该考虑的事情,请对我保持温和.通过阅读网络上的文档和各种资源,这似乎无法在任何地方解决.

随着我的项目规模的增加,我重新构建了文件夹和文件.虽然重构它感觉有点麻烦,但是检查路径的正确深度,以及当我移动视图模型时我也需要更改导入路径.

目前我需要在视图模型中导入某些文件:

import {log} from './../../services/log';
Run Code Online (Sandbox Code Playgroud)

我觉得更舒服的是从项目的根开始有一个相对路径,如:

import {log} from 'services/log'; 
Run Code Online (Sandbox Code Playgroud)

有什么我想念或根本不理解?我知道使用./指定当前文件的相对路径.

更新:

我尝试了与Aurelia Contact Manager Tutorial相同的内容,其中src文件夹中的所有文件都在同一级别.如果我将'wep-api.ts'文件移动到'src/services'文件夹中并想从'src/components/users'中的viewmodel导入该文件,我需要使用import作为

import {WebAPI} from './../../services/web-api';
Run Code Online (Sandbox Code Playgroud)

它似乎只适用于'services/web-api'而且错误是

[ts] cannot find module 'services/web-api'
Run Code Online (Sandbox Code Playgroud)

aurelia.json文件包括

"paths": {
    "root": "src", ...
Run Code Online (Sandbox Code Playgroud)

typescript aurelia-cli

7
推荐指数
1
解决办法
1016
查看次数

未捕获的TypeError创建Aurelia插件:plugin.load不是一个函数

我创建了一个新的Aurelia插件,它被命名Aurelia-Slickgrid并在本地工作.feature('resources').然后我准备好进行下一步,将它作为一个插件提供给每个人,并创建一个Github项目,并在这个GitHub链接下提供它- Aurelia-Slickgrid.我使用Aurelia Skeleton Plugin来创建我的插件,也运行gulp build以创建转换后的输出.然后我发布它NPM并成功安装它npm i --save aurelia-slickgrid.我目前正在使用Aurelia-CLI捆绑,一切顺利,直到我打开浏览器并看到控制台中出现错误(现在我在浏览器中留下了白页):

Uncaught TypeError: plugin.load is not a function
    at Module.<anonymous> (vendor-bundle.js:5308)
    ...
Run Code Online (Sandbox Code Playgroud)

目前,我正在尝试将其作为插件加载Aurelia-CLI.请参阅下面的完整配置:

index.js 插件

import {AureliaSlickgrid} from './aurelia-slickgrid';
import {SlickPager} from './slick-pager';
import {SlickWindowResizer} from './slick-window-resizer';

export function configure(config) {
  config.globalResources('./aurelia-slickgrid');
  config.globalResources('./slick-pager');
  config.globalResources('./slick-window-resizer');
}

export {
  AureliaSlickgrid,
  SlickPager,
  SlickWindowResizer
}
Run Code Online (Sandbox Code Playgroud)

main.js (我当地的项目)

aurelia.use
    .standardConfiguration()
    .feature('resources')
    .plugin('aurelia-slickgrid');
Run Code Online (Sandbox Code Playgroud)

aurelia.json (我当地的项目)

{
     "name": …
Run Code Online (Sandbox Code Playgroud)

javascript aurelia aurelia-cli

7
推荐指数
1
解决办法
1056
查看次数

使用CLI进行客户端缓存清除

我们正在使用aurelia-cli.任务包括:

build.json
build.ts
process-css.ts
process-markup.ts
process-sass.ts
run.json
run.ts
test.json
test.ts
transpile.ts
Run Code Online (Sandbox Code Playgroud)

如果我们用cli做一个缓存破坏解决方案呢?

我们已经尝试将递增的数字scripts目录,因此,它去scripts1,scripts2,scriptsN.

aurelia aurelia-cli

6
推荐指数
1
解决办法
1324
查看次数