首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在System.JS中将./[模块]映射到/[模块]/[模块].js?

如何在System.JS中将./[模块]映射到/[模块]/[模块].js?
EN

Stack Overflow用户
提问于 2017-02-11 02:05:29
回答 1查看 969关注 0票数 16

我正在尝试使用System.JS将material-ui导入我的React应用程序

在我的应用程序中,我这样做:

import {AppBar, Tabs, Tab, Card, CardTitle} from 'material-ui';

下面是我的System.JS配置:

System.config({
    baseURL: '/node_modules',
    packageConfigPaths: [
        '*/package.json'
    ],
    packages: {
        '.': {
            defaultExtension: 'js',
            main: 'index.js'
        },
    }
});

它加载node_modules/material-ui/index.js,其中包含一堆导入:

var _AppBar2 = require('./AppBar');

var _AppBar3 = _interopRequireDefault(_AppBar2);

var _AutoComplete2 = require('./AutoComplete');

var _AutoComplete3 = _interopRequireDefault(_AutoComplete2);

// ... etc, about 40 of them.

exports.AppBar = _AppBar3.default;
exports.AutoComplete = _AutoComplete3.default;

// ... etc

在软件包的树形结构中,每个模块都存储在自己的目录下,如下所示:

material-ui/
  index.js
  AppBar/
     AppBar.js
     index.js -- just reexports './AppBar'
  AutoComplete/
     AutoComplete.js
     index.js -- just reexports './AutoComplete'

等,所以实际上要导入material-ui/AppBar,我需要System.JS来加载node_modules/material-ui/AppBar/AppBar.jsnode_modules/material-ui/AppBar/index.js

取而代之的是,System.JS正在尝试加载不存在的node_modules/material-ui/AppBar.js

如果我为packages下的每个模块添加单独的条目

'material-ui': {
    map: {
        './AppBar': './AppBar/AppBar.js'
    }
}

它可以工作,但是通配符:

'material-ui': {
    map: {
        './*': './*/*.js'
    }
}

别。

如何让某个包下的System.JS将./*映射到./*/*.js

顺便说一下,browserify在这种布局上没有任何问题,所以当我仅通过调用browserify('./path/to/root/index.js')来使用browserify绑定我的应用程序时,所有material-ui模块的导入都没有任何问题。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42165927

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档