angularjs – karma-ng-html2js-preprocessor not working gulp angular karma ng-html2js

前端之家收集整理的这篇文章主要介绍了angularjs – karma-ng-html2js-preprocessor not working gulp angular karma ng-html2js前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我无法使karma-ng-html2js-preprocessor适用于外部模板.

包Json文件

.....
    "gulp-karma": "*","karma-coverage": "*","karma-jasmine": "*","karma-ng-html2js-preprocessor": "*","karma-phantomjs-launcher": "*",.....

Karma配置文件

config.set({
        browsers: [
             ....
        ],frameworks: [
            'jasmine'
        ],plugins: [
            'karma-jasmine','karma-phantomjs-launcher','karma-ng-html2js-preprocessor'
        ],preprocessors: {
            'app/**/*.html': 'ng-html2js'
        },ngHtml2JsPreprocessor: {
            stripPrefix: 'app/'
        }
    });

文件在Build文件中定义并传递给gulp-karma.以下是已定义的文件

config = {  test: {
          configFile: '.../karma.conf.js',depends: [
              .......
          ],files: [
            "app/**/*.js",'app/**/*.html'
          ]
       }
    }

在我的指令规范中加载模板,如下所示:

beforeEach(module('app'));
beforeEach(module('app/tem/mytemp.html'));

我收到以下错误

Error: [$injector:modulerr] Failed to instantiate module app/tem/mytemp.html due to:
Error: [$injector:nomod] Module 'app/tem/mytemp.html' is not available! You either misspelled the

在karma中,debug.html html文件加载在链接标记输出中:

<script type="text/javascript" src="/absoluteC:.../app/tem/comp/mydirective.js"></script>
<link href="/absoluteC:..../app/tem/mytemp.html" rel="import">
<script type="text/javascript">
window.__karma__.loaded();

我错过了什么吗?如何调试并继续解决此问题?

这是我如何解决完全相同的问题:

1)npm install karma-ng-html2js-preprocessor –save-dev(你已经完成了)

2)在karma.config.js中:

// .... 

preprocessors: {
  '**/*.html': ['ng-html2js']
},// ....

ngHtml2JsPreprocessor: {
  stripPrefix: 'app/',// <-- change as needed for the project
  // include beforeEach(module('templates')) in unit tests
  moduleName: 'templates'
},plugins : [
    'karma-phantomjs-launcher','karma-jasmine','karma-ng-html2js-preprocessor'
]

3)由于gulp-karma覆盖了karma.conf.js的files属性,因此更改了测试设置的gulp任务配置(我有两个:一个测试运行测试一次,另一个调用tdd进行连续测试)这样的事情:

gulp.task('test',function() {
  var bowerDeps = ...

  var testFiles = bowerDeps.js.concat([
    'app/scripts/**/*.js','test/unit/**/*.js','app/**/*.html' // <-- This is what you need to add to load the .html files 
  ]);

  return gulp.src(testFiles)
    .pipe($.karma({
      configFile: 'test/karma.conf.js',action: 'run'
    }))
  ....
});

希望这会对某人有所帮助.

原文链接:https://www.f2er.com/angularjs/140751.html

猜你在找的Angularjs相关文章