标签: ember-cli

建议在Ember.JS ember-cli App中包含bootstrap库

我正在尝试在我当前的ember-cli项目中正确安装Twitter Bootstrap.我用凉亭安装了bootstrap:

bower install --save bootstrap
Run Code Online (Sandbox Code Playgroud)

现在这个库已下载到/ vendor/bootstrap/dist /(css | js | fonts) 我试过这里提到的:http : //ember-cli.com/#managing-dependencies 替换路径和css文件名但我得到了有关Brocfile.js文件的错误.我认为与示例相比,brocfile格式发生了太大的变化.

移动/ app/styles /目录中的样式表后,我还尝试使用/app/styles/app.css文件@import :

@import url('/assets/bootstrap.css');
@import url('/assets/bootstrap-theme.css');
Run Code Online (Sandbox Code Playgroud)

但它没有用.文件是可见的真正的dev服务器:http://localhost:4200/assets/bootstrap.css

有人可以在这扔我一块骨头吗?

谢谢

编辑:

ember -v
ember-cli 0.0.23
Run Code Online (Sandbox Code Playgroud)

brocfile.js

    /* global require, module */

var uglifyJavaScript = require('broccoli-uglify-js');
var replace = require('broccoli-replace');
var compileES6 = require('broccoli-es6-concatenator');
var validateES6 = require('broccoli-es6-import-validate');
var pickFiles = require('broccoli-static-compiler');
var mergeTrees = require('broccoli-merge-trees');

var env = require('broccoli-env').getEnv();
var getEnvJSON = require('./config/environment');

var p …
Run Code Online (Sandbox Code Playgroud)

twitter-bootstrap ember.js bower ember-cli

79
推荐指数
7
解决办法
4万
查看次数

在ember-cli 0.0.47升级后违反内容安全策略指令

我将我的ember-cli应用程序升级到0.0.47,现在我的浏览器控制台中出现了一系列与内容安全策略相关的错误.我该如何解决这个问题?

Refused to load the script 'http://use.typekit.net/abcdef.js' because it violates the following Content Security Policy directive: "script-src 'self' 'unsafe-eval' localhost:35729".
 login:1
Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'self' 'unsafe-eval' localhost:35729". Either the 'unsafe-inline' keyword, a hash ('sha256-...'), or a nonce ('nonce-...') is required to enable inline execution.
 login:20
Refused to load the script 'http://connect.facebook.net/en_US/all.js' because it violates the following Content Security Policy directive: "script-src 'self' 'unsafe-eval' localhost:35729".
 login:1
Refused to load …
Run Code Online (Sandbox Code Playgroud)

ember.js content-security-policy ember-cli

59
推荐指数
2
解决办法
4万
查看次数

通过ember-cli创建应用程序获取"未捕获错误:断言失败:Ember视图需要1.7到2.1之间的jQuery"

我是从烬开始的.我按照emberjs.com上的入门指南进行操作,并通过运行以下命令设法创建一个新的ember应用程序:

npm install -g ember-cli
ember new sample-app
Run Code Online (Sandbox Code Playgroud)

一切都成功了,我可以看到ember-cli生成的app文件.不久之后我做了:

ember server
Run Code Online (Sandbox Code Playgroud)

命令行显示:

version: 1.13.13
Livereload server on http://localhost:49153
Serving on http://localhost:4200/

Build successful - 4426ms.

Slowest Trees                                 | Total               
----------------------------------------------+---------------------
ConcatWithMaps: Concat: Vendor                | 3498ms              

Slowest Trees (cumulative)                    | Total (avg)         
----------------------------------------------+---------------------
ConcatWithMaps: Concat: Vendor (1)            | 3498ms 
Run Code Online (Sandbox Code Playgroud)

当我转到http:// localhost:4200时出现问题.没有任何内容加载,Chrome控制台显示以下内容:

Uncaught Error: Assertion Failed: Ember Views require jQuery between 1.7 and 2.1
Uncaught Error: Could not find module `ember` imported from `sample-app/app`
Run Code Online (Sandbox Code Playgroud)

我尝试通过重新安装ember-cli,bower和npm来解决这个问题,但没有任何工作.

以下是必要的附加信息: …

javascript ember.js ember-cli

55
推荐指数
1
解决办法
8434
查看次数

Ember CLI测试复杂的模型关系

据我所知,在ember CLI中测试ember-data模型时,必须列出所有关系needs.如果结构简单,这很好,但在许多情况下会有多个层.

例如,如果设置了模型,并定义了以下关系:

Model a:
   belongsTo: b
   belongsTo: c

Model b:
   hasMany: a
   hasMany: d

Model c:
   hasMany: a
   belongsTo: e

Model d:
   hasMany b

Model e:
   hasMany c
Run Code Online (Sandbox Code Playgroud)

然后,对于任何这些模型的每个单元测试都将需要列出的所有其他模型needs,例如:A测试c:

needs: [
    'model:a' // Because c -> a
    'model:e' // Because c -> e
    'model:b' // Because c -> a -> b
    'model:d' // Because c -> a -> b -> d
]
Run Code Online (Sandbox Code Playgroud)

14个模型的实际配置要复杂得多,每个模型间接与其他模型相关.

我的理解是否正确?有更有效的方法吗?或者有一个很好的理由这样做我错过了吗?

unit-testing ember.js ember-data ember-cli

54
推荐指数
1
解决办法
899
查看次数

当有测试时,ember-cli-code-coverage mocha显示0%的覆盖率

我正在使用ember-cli-code- coverember-cli-mocha.当我运行时,COVERAGE=true ember test我的语句,函数和行的覆盖率为0%.然而,我的测试涵盖了这些部分.我在设置中遗漏了什么?

在此输入图像描述

单元测试文件:

  beforeEach(function() {
    controller = this.subject();
  });

  it('sets selectedImage to null', function() {
    expect(controller.get('selectedImage')).to.eql(null);
  });

  describe('setCoverageTest', function() {
    it('sets selectedImage to true', function()  {
      expect(controller.get('selectedImage')).to.eql(null);
      controller.setCoverageTest();
      expect(controller.get('selectedImage')).to.be.true;
    });
  });
Run Code Online (Sandbox Code Playgroud)

配置/ coverage.js:

module.exports = {
  excludes: ['*/templates/**/*'],
  useBabelInstrumenter: true
};
Run Code Online (Sandbox Code Playgroud)

code-coverage ember.js ember-cli ember-cli-code-coverage

39
推荐指数
1
解决办法
372
查看次数

未捕获错误:断言失败:在被破坏的对象上调用set

在ember-cli测试中工作.在所有测试通过后,它返回额外的两个错误测试.

未捕获的错误:断言失败:在被破坏的对象上调用set源:'../dist/assets/vendor.js:13269'

这是一个单元测试配置

import Ember from "ember";
import { test,moduleFor } from 'ember-qunit';
import startApp from '../helpers/start-app';

var App;

module('An Integration test',{
    setup:function(){
        App=startApp();
    },
    teardown: function() {
        Ember.run(App, 'destroy');
    }
});
Run Code Online (Sandbox Code Playgroud)

qunit ember.js ember-cli

37
推荐指数
2
解决办法
2万
查看次数

{{content-for'head'}} Ember-cli

过去1个月我一直在使用Yeoman余烬发生器,现在,我想尝试一下ember-cli.

我运行生成器并启动应用程序,一切正常.

ember new my-new-app
ember server
Run Code Online (Sandbox Code Playgroud)

但我想知道怎么做

{{content-for 'head'}}
Run Code Online (Sandbox Code Playgroud)

在app/index.html中有效吗?

在查看http://www.ember-cli.com/#tutorials中的其他示例时,他们都没有使用这个特定的助手?是因为他们使用旧版本的ember-cli?他们为什么不使用这些内容作为助手呢?

我很确定ember.js没有这个内容 - 默认情况下是helper,所以我猜是ember-cli在某处写的?它在哪里以及它的用途是什么?

另外,当我检查my-new-app页面的元素时,"Welcome to Ember.js"的div标签出现在body标签而不是head标签上?怎么可能?{{心吹}}

(在app/index.html中,{{content-for'head'}}放在head标签内)

ember.js ember-cli

32
推荐指数
2
解决办法
2万
查看次数

如何在验收测试中模拟Ember-CLI服务?

快速摘要/ tldr:

  • 似乎Ember的容器查找过程+ Ember-CLI的模块解析器不允许手动取消注册服务然后注册替换,如果原始服务可以使用resolver(我想要执行此处描述的方法,但它没有不行
  • 如何在不使用hacky自定义解析器的情况下在验收测试中模拟Ember-CLI服务?(这里的示例项目/验收测试)

详细解释+例子

创建一个注入控制器的新服务:

ember generate service logger
Run Code Online (Sandbox Code Playgroud)

服务/ logger.js

export default Ember.Object.extend({
  log: function(message){
    console.log(message);
  }
});
Run Code Online (Sandbox Code Playgroud)

初始化/记录器-service.js

export function initialize(container, application) {
  application.inject('route', 'loggerService', 'service:logger');
  application.inject('controller', 'loggerService', 'service:logger');
}
Run Code Online (Sandbox Code Playgroud)

loggerService在应用程序控制器的动作处理程序中,通过其注入名称访问该服务:

在控制器中使用该服务

模板/ application.hbs

<button id='do-something-button' {{action 'doSomething'}}>Do Something</button>
Run Code Online (Sandbox Code Playgroud)

控制器/ application.hs

export default Ember.Controller.extend({
  actions: {
    doSomething: function(){
      // access the injected service
      this.loggerService.log('log something');
    }
  }
});
Run Code Online (Sandbox Code Playgroud)

尝试测试此行为是否正确发生

我创建了一个验收测试,检查按钮单击是否触发了服务.目的是模拟服务并确定是否在没有实际触发服务实现的情况下调用它 - 这避免了实际服务的副作用.

ember generate acceptance-test application
Run Code Online (Sandbox Code Playgroud)

测试/接受/应用test.js

import Ember …
Run Code Online (Sandbox Code Playgroud)

ember.js ember-cli

31
推荐指数
2
解决办法
8616
查看次数

使用ember-cli导入jquery

由于ember-cli 0.0.34 jquery已从预定义的.jshint文件中删除.因此需要导入jquery,但在执行此操作时出现以下错误:

import $ from 'jquery';
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

ENOENT, no such file or directory 'S:\...\tmp\tree_merger-tmp_dest_dir-Nb27WzDk.tmp\jquery.js'
Error: ENOENT, no such file or directory 'S:\...\tmp\tree_merger-tmp_dest_dir-Nb27WzDk.tmp\jquery.js'
    at Object.fs.statSync (fs.js:684:18)
    at addModule (S:\...\node_modules\ember-cli\node_modules\broccoli-es6-concatenator\index.js:81:46)
    .....
Run Code Online (Sandbox Code Playgroud)

ember.js ember-cli

29
推荐指数
2
解决办法
9897
查看次数

如何使用第三方npm包与ember cli app

编辑: 这实际上是关于任何npm包,它不是与ember一起玩的.在我的情况下,我试图使crypto-js工作,但似乎总是同样的问题,任何不专门为ember cli设计的npm包.

我想在我的ember应用程序中使用cryptoJS,我目前正在使用ember cli进行重构,但是我在导入我已经使用的所有第三方软件包和库时遇到了很多麻烦,例如cryptoJS.

CryptoJS至少有一个npm的包,我甚至不想考虑如果我的一些包含的库没有包会发生什么...

我是否只是忽略了ember-cli文档中的要点,或者它是否真的没有描述如何导入其他npm包以及如何正确地包含非包文件库以使它们保持在版本控制和依赖控制之下?

如果我按照crypto-js包手册的描述:

var CryptoJS = require("crypto-js");
console.log(CryptoJS.HmacSHA1("Message", "Key"));
Run Code Online (Sandbox Code Playgroud)

我得到了错误 ember build

utils/customauthorizer.js: line 1, col 16, 'require' is not defined.
Run Code Online (Sandbox Code Playgroud)

感谢您对此的任何帮助,我对ember cli项目感到非常兴奋,但导入我现有的ember应用程序到目前为止一直非常痛苦...

编辑:

只是导入不幸不起作用.

import CryptoJS from 'crypto-js';
Run Code Online (Sandbox Code Playgroud)

在构建期间抛出

daily@dev1:~/VMD$ ember build
version: 0.1.2
Build failed.
File: vmd/utils/customauthorizer.js
ENOENT, no such file or directory '/home/daily/VMD/tmp/tree_merger-tmp_dest_dir-F7mfDQyP.tmp/crypto-js.js'
Error: ENOENT, no such file or directory '/home/daily/VMD/tmp/tree_merger-tmp_dest_dir-F7mfDQyP.tmp/crypto-js.js'
    at Error (native)
    at Object.fs.statSync (fs.js:721:18)
    at addModule (/home/daily/VMD/node_modules/ember-cli/node_modules/broccoli-es6-concatenator/index.js:84:46)
    at addModule (/home/daily/VMD/node_modules/ember-cli/node_modules/broccoli-es6-concatenator/index.js:133:9)
    at addModule (/home/daily/VMD/node_modules/ember-cli/node_modules/broccoli-es6-concatenator/index.js:133:9)
    at /home/daily/VMD/node_modules/ember-cli/node_modules/broccoli-es6-concatenator/index.js:59:7
    at $$$internal$$tryCatch (/home/daily/VMD/node_modules/ember-cli/node_modules/rsvp/dist/rsvp.js:470:16)
    at …
Run Code Online (Sandbox Code Playgroud)

npm ember.js ember-cli

28
推荐指数
2
解决办法
2万
查看次数