噶Require.js – 改变目录结构正在杀死一切

我一直试图设置业力现在与Require.js工作几天(然后后来使用angular度要求),这是令人吃惊的令人沮丧。 以下是我的文件树在这个例子中的样子:

$ 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 requirejs示例中使用的一个克隆。 karma示例githubs的代码和我的代码之间的唯一区别是对文件目录结构的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文件)中更改:

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: 检查回购

答案是补充

 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); } } 

因此将其添加到path将是redundent。

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