From 96fec990b42c5bcf560f66c318608e0d19fb24e5 Mon Sep 17 00:00:00 2001 From: Ben Date: Thu, 30 Nov 2017 15:18:17 +0100 Subject: [PATCH] Fix absolute imports. Solution using .env to set NODE_PATH (commit c148630) appears unreliable. Discussions about absolute imports for create-react-app are ongoing; making a symlink seems the currently recommended approach. I call it 'src' for clarity. See e.g. https://github.com/facebookincubator/create-react-app/issues/1065 --- .env | 1 - .gitignore | 3 ++- node_modules/src | 1 + src/actions/index.js | 2 +- src/actions/sessionActions.js | 2 +- src/app/App.jsx | 4 ++-- src/app/store.js | 2 +- .../CollectionScreen/CollectionContent.jsx | 4 ++-- .../CollectionScreen/CollectionInfo.jsx | 4 ++-- src/components/CollectionScreen/index.jsx | 2 +- src/components/EntityScreen/EntityContent.jsx | 2 +- src/components/EntityScreen/EntityInfo.jsx | 2 +- src/components/EntityScreen/index.jsx | 4 ++-- src/components/HomeScreen/HomeContent.jsx | 2 +- src/components/HomeScreen/HomeInfo.jsx | 4 ++-- src/components/HomeScreen/index.jsx | 2 +- src/components/PageLayout/PageNavbar.jsx | 2 +- src/components/PageLayout/index.jsx | 18 +++++++++--------- src/components/SearchScreen/SearchFilter.jsx | 4 ++-- .../SearchScreen/SearchFilterCollections.jsx | 2 +- .../SearchScreen/SearchFilterSchema.jsx | 2 +- .../SearchScreen/SearchResultList.jsx | 2 +- .../SearchScreen/SearchResultListItem.jsx | 2 +- src/components/SearchScreen/index.jsx | 4 ++-- src/components/auth/ActivateScreen.jsx | 6 +++--- src/components/auth/LoginScreen.jsx | 4 ++-- src/components/auth/LogoutScreen.jsx | 6 +++--- src/components/auth/SignupScreen.jsx | 6 +++--- src/components/common/XhrToast.jsx | 2 +- src/index.js | 2 +- 30 files changed, 52 insertions(+), 51 deletions(-) delete mode 100644 .env create mode 120000 node_modules/src diff --git a/.env b/.env deleted file mode 100644 index f5fe602..0000000 --- a/.env +++ /dev/null @@ -1 +0,0 @@ -NODE_PATH=src diff --git a/.gitignore b/.gitignore index 0768014..e9e643f 100644 --- a/.gitignore +++ b/.gitignore @@ -2,7 +2,8 @@ *.css # dependencies -/node_modules +/node_modules/* +!/node_modules/src # testing /coverage diff --git a/node_modules/src b/node_modules/src new file mode 120000 index 0000000..5cd551c --- /dev/null +++ b/node_modules/src @@ -0,0 +1 @@ +../src \ No newline at end of file diff --git a/src/actions/index.js b/src/actions/index.js index 99f8588..508d46f 100644 --- a/src/actions/index.js +++ b/src/actions/index.js @@ -1,4 +1,4 @@ -import {endpoint} from 'app/api'; +import {endpoint} from 'src/app/api'; export const fetchCollections = () => (dispatch) => { const limit = 5000; diff --git a/src/actions/sessionActions.js b/src/actions/sessionActions.js index d8a8a5d..73fce01 100644 --- a/src/actions/sessionActions.js +++ b/src/actions/sessionActions.js @@ -1,4 +1,4 @@ -import {endpoint} from 'app/api'; +import {endpoint} from 'src/app/api'; export const loginWithToken = token => dispatch => { dispatch({type: 'LOGIN', token}); diff --git a/src/app/App.jsx b/src/app/App.jsx index 7a86b28..55dbfad 100644 --- a/src/app/App.jsx +++ b/src/app/App.jsx @@ -9,8 +9,8 @@ import de from 'react-intl/locale-data/de'; import ru from 'react-intl/locale-data/ru'; import es from 'react-intl/locale-data/es'; -import translations from 'content/translations.json'; -import PageLayout from 'components/PageLayout'; +import translations from 'src/content/translations.json'; +import PageLayout from 'src/components/PageLayout'; import store from './store'; import './App.css'; diff --git a/src/app/store.js b/src/app/store.js index bb8a8f1..9c7f2e2 100644 --- a/src/app/store.js +++ b/src/app/store.js @@ -3,7 +3,7 @@ import thunk from 'redux-thunk'; import logger from 'redux-logger'; import {throttle} from 'lodash'; -import rootReducer from 'reducers'; +import rootReducer from 'src/reducers'; import {loadState, saveState} from './storage'; const persistedState = loadState(); diff --git a/src/components/CollectionScreen/CollectionContent.jsx b/src/components/CollectionScreen/CollectionContent.jsx index d1b7bbf..d053b11 100644 --- a/src/components/CollectionScreen/CollectionContent.jsx +++ b/src/components/CollectionScreen/CollectionContent.jsx @@ -1,8 +1,8 @@ import React, { Component } from 'react'; import { withRouter } from 'react-router'; -import DualPane from 'components/common/DualPane'; -import SearchScreen_ from 'components/SearchScreen'; +import DualPane from 'src/components/common/DualPane'; +import SearchScreen_ from 'src/components/SearchScreen'; const SearchScreen = withRouter(SearchScreen_); class CollectionContent extends Component { diff --git a/src/components/CollectionScreen/CollectionInfo.jsx b/src/components/CollectionScreen/CollectionInfo.jsx index 3b2fd35..995c74f 100644 --- a/src/components/CollectionScreen/CollectionInfo.jsx +++ b/src/components/CollectionScreen/CollectionInfo.jsx @@ -3,8 +3,8 @@ import { connect } from 'react-redux'; import { Link } from 'react-router-dom'; import { Icon } from '@blueprintjs/core'; -import DualPane from 'components/common/DualPane'; -import Breadcrumbs from 'components/common/Breadcrumbs'; +import DualPane from 'src/components/common/DualPane'; +import Breadcrumbs from 'src/components/common/Breadcrumbs'; function getPath(url) { return new URL(url).pathname; diff --git a/src/components/CollectionScreen/index.jsx b/src/components/CollectionScreen/index.jsx index ec5f6f8..1be0514 100644 --- a/src/components/CollectionScreen/index.jsx +++ b/src/components/CollectionScreen/index.jsx @@ -1,7 +1,7 @@ import React, { Component } from 'react'; import { connect } from 'react-redux'; -import DualPane from 'components/common/DualPane'; +import DualPane from 'src/components/common/DualPane'; import CollectionContent from './CollectionContent'; import CollectionInfo from './CollectionInfo'; diff --git a/src/components/EntityScreen/EntityContent.jsx b/src/components/EntityScreen/EntityContent.jsx index 31a45f8..ed23699 100644 --- a/src/components/EntityScreen/EntityContent.jsx +++ b/src/components/EntityScreen/EntityContent.jsx @@ -1,6 +1,6 @@ import React, { Component } from 'react'; -import DualPane from 'components/common/DualPane'; +import DualPane from 'src/components/common/DualPane'; class EntityContent extends Component { render() { diff --git a/src/components/EntityScreen/EntityInfo.jsx b/src/components/EntityScreen/EntityInfo.jsx index 91f18d0..9f6af7e 100644 --- a/src/components/EntityScreen/EntityInfo.jsx +++ b/src/components/EntityScreen/EntityInfo.jsx @@ -1,6 +1,6 @@ import React, { Component } from 'react'; -import DualPane from 'components/common/DualPane'; +import DualPane from 'src/components/common/DualPane'; class EntityInfo extends Component { render() { diff --git a/src/components/EntityScreen/index.jsx b/src/components/EntityScreen/index.jsx index 8127ce9..97714e7 100644 --- a/src/components/EntityScreen/index.jsx +++ b/src/components/EntityScreen/index.jsx @@ -1,8 +1,8 @@ import React, { Component } from 'react'; import { connect } from 'react-redux'; -import { fetchEntity } from 'actions'; -import DualPane from 'components/common/DualPane'; +import { fetchEntity } from 'src/actions'; +import DualPane from 'src/components/common/DualPane'; import EntityInfo from './EntityInfo'; import EntityContent from './EntityContent'; diff --git a/src/components/HomeScreen/HomeContent.jsx b/src/components/HomeScreen/HomeContent.jsx index eb8aee4..0e97eed 100644 --- a/src/components/HomeScreen/HomeContent.jsx +++ b/src/components/HomeScreen/HomeContent.jsx @@ -2,7 +2,7 @@ import React, { Component } from 'react'; import { Link } from 'react-router-dom'; import { groupBy, map } from 'lodash'; -import DualPane from 'components/common/DualPane'; +import DualPane from 'src/components/common/DualPane'; function getPath(url) { return new URL(url).pathname; diff --git a/src/components/HomeScreen/HomeInfo.jsx b/src/components/HomeScreen/HomeInfo.jsx index 9a721a0..bbc9454 100644 --- a/src/components/HomeScreen/HomeInfo.jsx +++ b/src/components/HomeScreen/HomeInfo.jsx @@ -2,8 +2,8 @@ import React, { Component } from 'react'; import { Link } from 'react-router-dom'; import { Icon } from '@blueprintjs/core'; -import DualPane from 'components/common/DualPane'; -import Breadcrumbs from 'components/common/Breadcrumbs'; +import DualPane from 'src/components/common/DualPane'; +import Breadcrumbs from 'src/components/common/Breadcrumbs'; import './HomeInfo.css'; diff --git a/src/components/HomeScreen/index.jsx b/src/components/HomeScreen/index.jsx index 76ff777..aa19d9f 100644 --- a/src/components/HomeScreen/index.jsx +++ b/src/components/HomeScreen/index.jsx @@ -1,7 +1,7 @@ import React, { Component } from 'react'; import { connect } from 'react-redux'; -import DualPane from 'components/common/DualPane'; +import DualPane from 'src/components/common/DualPane'; import HomeInfo from './HomeInfo'; import HomeContent from './HomeContent'; diff --git a/src/components/PageLayout/PageNavbar.jsx b/src/components/PageLayout/PageNavbar.jsx index adbce90..916d77f 100644 --- a/src/components/PageLayout/PageNavbar.jsx +++ b/src/components/PageLayout/PageNavbar.jsx @@ -3,7 +3,7 @@ import {FormattedMessage} from 'react-intl'; import {Button} from '@blueprintjs/core'; import {Link} from 'react-router-dom'; -import AuthButton from 'components/auth/AuthButton'; +import AuthButton from 'src/components/auth/AuthButton'; const SignupButton = () =>