从node_modules导入模块(create-react-app)

8
我该如何从src目录外导入模块?
./src/App.js
Module not found: Can't resolve 'material-ui' in '/Users/suvo/GitHub/portfolio/src'

根据 react-material-icons 页面,我应该按照以下方式进行导入:
import mui from 'material-ui';

错误很奇怪。我在import mui...旁边放了import $ from 'jquery';,它可以正常工作。而且,如果我创建一个新项目并添加react-material-icons,npm不会启动,显示错误信息:
> myapp@0.1.0 start /Users/suvo/GitHub/myapp
> react-scripts start

sh: react-scripts: command not found
npm ERR! file sh
npm ERR! code ELIFECYCLE
npm ERR! errno ENOENT
npm ERR! syscall spawn
npm ERR! myapp@0.1.0 start: `react-scripts start`
npm ERR! spawn ENOENT
npm ERR! 
npm ERR! Failed at the myapp@0.1.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/suvo/.npm/_logs/2017-09-11T11_40_15_791Z-debug.log
1个回答

1
只需在包名前面删除 . 即可。
import mui from 'material-ui';

使用npm installyarn install安装的软件包将保存在node_modules目录中。您只需指定软件包名称即可导入它们。
import React from 'react';
import mui from 'material-ui';

import AlarmIcon from 'react-material-icons/icons/action/alarm';

export default class Alarm extends React.Component {
  render() {
    return (
      <AlarmIcon/>
    );
  }
}

1
仍然出现错误: 在“/Users/suvo/GitHub/portfolio/src”中找不到模块:“material-ui”。 - DuchSuvaa
我不知道这个点号是从哪里来的,我已经更新了问题并附上了实际的错误信息。 - DuchSuvaa
你可以再尝试执行 yarn install react-material-icons 或者 npm install --save react-material-icons,然后再试一下吗? - sudo bangbang
我尝试过了,仍然是同样的错误。如果我使用create-react-app创建一个新项目并在其中安装react-material-icons,我会得到另一个错误(请参见更新的问题)。 - DuchSuvaa
我也遇到了这个问题,我找到了一个解决方案,但不幸的是,它对我没有用,但我听说webpack需要知道在哪里查找模块。为此,请使用以下内容编辑./App/webpack.config.jsmodule.exports = { resolve: { modules: [ "../node_modules/" ] } };当然,请确保该模块已安装在node_modules文件夹中。希望这对你有用。 - J-Cake

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接