首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Requirejs不为使用业力的模块添加".js“

Requirejs不为使用业力的模块添加".js“
EN

Stack Overflow用户
提问于 2014-10-30 14:47:54
回答 2查看 875关注 0票数 0

我有一个简单的测试,它必须使用业力和需求在网络风暴中工作。

问题是,出于某种原因,对于我为测试加载的模块,要求不添加".js“。所以它试着装载“./ts/妈妈/妈妈”,而“./ts/妈妈/妈妈”却存在。

测试(main.jasmine.js):

代码语言:javascript
复制
define(["require", "exports", "../ts/mamats/mama"], function(require, exports, mama) {
    describe("first test", function () {
        it("should be true", function () {
            var object = new mama.block();
            expect(object instanceof mama.block).toBe(true);
        });
    });
});
//# sourceMappingURL=main.jasmine.js.map

当我把“./ts/妈妈/妈妈”改为“./ts/妈妈/妈妈”时,每件事都是正确的。

sourceMappingURL在这里是因为javaScript文件是从typeScript源文件生成的,因此我不能手动为模块添加".js“。

测试从这个入口点开始(main-test.js):

代码语言:javascript
复制
var tests = Object.keys(window.__karma__.files).filter(function (file) {
    return (/\.jasmine\.js$/).test(file);
});
requirejs.config({
    baseUrl: '/base',
    deps: tests,
    callback: window.__karma__.start
});

为什么这里的需求不为模块添加".js“?

Karma conf档案:

代码语言:javascript
复制
module.exports = function(config) {
  config.set({
    basePath: '../',
    frameworks: ['jasmine', 'requirejs'],
    files: [
      'static-tests/main-test.js',
      { pattern: 'static/**/*', included: false },
      { pattern: 'static-tests/**/*', included: false }
    ],
    exclude: [],
    preprocessors: {},
    reporters: ['progress'],
    port: 9876,
    colors: true,
    logLevel: config.LOG_INFO,
    autoWatch: false,
    browsers: ['Chrome'],
    singleRun: false
  });
};
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-31 17:02:08

它看起来像require.js中的麻烦

问题在于: 1.在deps中出现绝对路径时

这里的其他解决方案--替换bathUrl并将其添加到requirejs -没有帮助。

对我来说,解决方案是下一个:

代码语言:javascript
复制
var tests = Object.keys(window.__karma__.files).filter(function (file) {
    return (/\-jasmine\.js$/).test(file);
}).map(function (file) {
    return file.replace(/^\/|\.js$/g, '');
});

代码语言:javascript
复制
baseUrl: '',

对于requirejs.conf

我也不知道为什么对所有请求的url仍然添加"/base“,但现在一切正常。

票数 1
EN

Stack Overflow用户

发布于 2014-10-30 21:55:43

这里有一个关于RequireJs如何处理这个问题的有趣的阅读:

http://requirejs.org/docs/api.html#jsfiles

读这篇文章让它看起来像是RequireJS的一个问题,但是对于这是否是真的,似乎有一些争论。无论如何,这个要旨似乎解决了这个问题。

代码语言:javascript
复制
var tests = Object.keys(window.__karma__.files).filter(function (file) {
  return /\.spec\.js$/.test(file);
}).map(function(file){
  return file.replace(/^\/base\/src\/js\/|\.js$/g,'');
});

require.config({
  baseUrl: '/base/src/js'
});

require(tests, function(){
  window.__karma__.start();
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26656102

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档