我有一个使用RequireJS
(2.1.14)作为模块系统的前端SPA。它基本上引导并加载Backbone.Marionette
应用程序。如何访问RequireJS(AMD)环境中的node.js模块?
在main.js
:
require.config ({
baseUrl: '/js',
waitSeconds: 200,
nodeRequire: require,
paths: {
jquery: '//cdn/jquery.min',
underscore:'//cdn/underscore-min',
// more plugins
},
shim: {
// shimming stuff
}
});
require(['marionette',
'vent',
'config/template',
'app',
'routers/main'
],
function (Marionette,
vent,
Template,
nrtApp
) {
'use strict';
nrtApp.module ('Public.Main', function (Main, nrtApp, Backbone,Marionette, $, _) {
nrtApp.start();
// this is where the error is:
requirejs (['config'], function (config) {
if (typeof config !== 'undefined') {config.log ('ok!');}
});
});
});
的问题是,我想加载一些npm
包(例如NPM安装配置)从RequireJS
模块。 RequireJS
似乎无法找到位于与RequireJS baseUrl
目录不同目录的npm node_modules
目录。
下面是我的目录结构:
my_project/
app/
public/
js/
main.js
app.js
node_modules/
config/
下面是错误消息:
它试图从目录中的baseUrl加载模块。
如何在我的用例中从RequireJS模块系统访问npm模块?
从客户端只能访问公用文件夹。 node_modules中的配置是什么?如果该模块也在客户端上工作,那么您必须将其复制到public/js中才能使用它。 – Molda
@Molda config是一个npm模块。是的,我想在客户端应用程序中使用配置。 –