使用基于require js的模块和相对路径

时间:2014-10-23 19:04:27

标签: requirejs

我正在尝试使用名为g.js(https://github.com/nodebox/g.js)的库,这是一个图形包。脚本文件" g.js"是入口点文件,它是"要求"使用语法的其他文件:

// Utility functions
g.bezier = require('./util/bezier');
g.color = require('./util/color');
g.geo = require('./util/geo');
g.math = require('./util/math');
g.random = require('./util/random');
g.svg = require('./util/svg');

我的问题是......如何在我的html / javascript文件中使用这组库文件?

就我而言,我尝试了以下方法:

在我的html文件中加载了require.js:

<script src="scripts/require.js" data-main="scripts/main"></script>

我的main.js看起来像这样:

require.config({
baseUrl : "scripts",
paths : {
  'jquery' : 'jquery-1.11.1',
  'lodash' : 'libs/lodash',
  'module_g_test' : 'module_g_test'
},
packages: [
  {
    name: "g",
    location: "g.js-master/src",
    main: "g"
  }
]
});

require(['jquery', 'module_g_test'], function($, g_test) {
  $(function() {
    console.log("basic stuff ready!");
    g_test();
  });
});

最后,我试图在我的模块脚本文件中使用图形库

&#13;
&#13;
define(['g'], function(g) {

  var testModule = function() {
    var x = g.Path.prototype;
    console.log(x);
  };

  return testModule;
});
~
&#13;
&#13;
&#13;

无论我做什么,我都无法加载g.js访问的内部javascript文件。我收到了一个requirejs错误:

  

错误   模块名称&#34; util / bezier&#34;尚未加载上下文:_ http://requirejs.org/docs/errors.html#notloaded

任何帮助都非常感谢。

1 个答案:

答案 0 :(得分:1)

这是一个用commonjs风格编写的库,它使用browserify。克隆存储库并:

  1. 运行npm install
  2. 运行npm run browserify
  3. 从您网站的build/g.js链接脚本
  4. 分发版本已实施UMD,因此它应与RequireJS一起使用。