噶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个改变:
-
/karma.conf.js
==> /config/karma.conf.js
-
/ src目录/
==> /public/src/
-
/index.html
==> /public/index.html
所以。 现在为了让所有的东西都能正常工作,你将不得不:
- 在conf目录下运行karma,
-
在karma.conf.js文件中更改:
basePath: '',
至
basePath: '../',
-
并在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', },