Karma Require.js——改变目录结构会毁掉一切

Karma Require.js -- changing directory structure is killing everything

本文关键字:结构 Require js 改变目录 Karma      更新时间:2023-09-26

我已经尝试设置karma与require .js一起工作了几天了(然后在angular中使用require),结果非常令人沮丧。下面是我的文件树在这个例子中的样子:

$ tree
.
|-- public
|   |-- index.html
|   |-- src
|       |-- app.js
|       `-- main.js
|-- config
|   |-- karma.conf.js  
|-- lib
|   |-- jquery.js
|   |-- require.js
|   `-- underscore.js
|-- src
|   |-- app.js
|   `-- main.js
`-- test
    |-- appSpec.js
    `-- test-main.js

注意:

我正在开发的这个存储库是karma需求示例中使用的存储库的克隆。karma示例githuubs的代码和我的代码之间的唯一区别是对文件目录结构的3个更改:

  1. /karma.conf.js

        ==> /config/karma.conf.js
    
  2. /src/

        ==> /public/src/
    
  3. /index . html

        ==> /public/index.html
    

。现在,为了使一切正常工作,您必须:

  1. 在conf目录下运行karma,
  2. 在karma.conf.js文件更改:

    basePath: '',
    

    basePath: '../',
    
  3. 和test/test-main.js(这是需求。

requirejs.config ({

// Karma serves files from '/base' 
baseUrl: '/base/src',

requirejs.config({
    // Karma serves files from '/base'
    baseUrl: '../base/src',

,但无论我做什么,我仍然得到相同的错误:

ERROR: 'There is no timestamp for /base/src/app.js!'
Uncaught Error: Script error for: app
http://requirejs.org/docs/errors.html#scripterror
at /node_modules/requirejs/require.js:141

    Uncaught Error: Script error for: jquery
http://requirejs.org/docs/errors.html#scripterror
at /node_modules/requirejs/require.js:141
    Uncaught Error: Script error for: underscore
http://requirejs.org/docs/errors.html#scripterror
at /node_modules/requirejs/require.js:141

^tldr:检查repo

答案是添加

paths: {
   'jquery': '../lib/jquery',
   'underscore': '../lib/underscore'
   'app' : '../public/src/app'     <====
  },

而在原始示例代码中,app.js是通过:

添加的
var tests = [];
for (var file in window.__karma__.files) {
    if (/Spec'.js$/.test(file)) {
        tests.push(file);
    }
}

所以将它添加到路径中是多余的。

paths: {
    'jquery': '../lib/jquery',
    'underscore': '../lib/underscore',
},