Skip to content
This repository has been archived by the owner on Jun 8, 2019. It is now read-only.

directory gets created outside of messagesDir #23

Closed
bartvde opened this issue Dec 4, 2015 · 13 comments
Closed

directory gets created outside of messagesDir #23

bartvde opened this issue Dec 4, 2015 · 13 comments

Comments

@bartvde
Copy link

bartvde commented Dec 4, 2015

I have an app that links to an SDK using npm link. This all works fine, except for babel-plugin-react-intl generating a directory outside of messagesDir.

So the app.json gets created in the correct location:

build/messages/app.json

but the .json files of the SDK (which is in node_modules/boundlessgeo-sdk) get generated in sdk in the root of the repo:


Barts-MacBook-Air:tabbed bartvandeneijnden$ ls -l sdk/js/components/
total 112
-rw-r--r--  1 bartvandeneijnden  staff  1265 Dec  4 09:06 AddLayer.json
-rw-r--r--  1 bartvandeneijnden  staff   157 Dec  4 09:06 Chart.json
-rw-r--r--  1 bartvandeneijnden  staff  1417 Dec  4 09:06 FeatureTable.json
-rw-r--r--  1 bartvandeneijnden  staff   178 Dec  4 09:06 Geocoding.json
-rw-r--r--  1 bartvandeneijnden  staff   154 Dec  4 09:06 GeocodingResults.json
-rw-r--r--  1 bartvandeneijnden  staff   314 Dec  4 09:06 Geolocation.json
-rw-r--r--  1 bartvandeneijnden  staff   124 Dec  4 09:06 HomeButton.json
-rw-r--r--  1 bartvandeneijnden  staff   275 Dec  4 09:06 ImageExport.json
-rw-r--r--  1 bartvandeneijnden  staff  2010 Dec  4 09:06 LayerListItem.json
-rw-r--r--  1 bartvandeneijnden  staff   568 Dec  4 09:06 Measure.json
-rw-r--r--  1 bartvandeneijnden  staff   152 Dec  4 09:06 QGISLegend.json
-rw-r--r--  1 bartvandeneijnden  staff  1044 Dec  4 09:06 QGISPrint.json
-rw-r--r--  1 bartvandeneijnden  staff  1347 Dec  4 09:06 QueryBuilder.json
-rw-r--r--  1 bartvandeneijnden  staff   285 Dec  4 09:06 Select.son

Any pointers to as why this might be happening? This is only when using npm link between app and SDK.

@bartvde
Copy link
Author

bartvde commented Dec 4, 2015

ah it seems it's actually following the symlinks:

/Users/bartvandeneijnden/opengeo/git/sdk/js/components/Geocoding.jsx
../../sdk/js/components/Geocoding.jsx

@bartvde
Copy link
Author

bartvde commented Dec 4, 2015

Is there a way to protect the path so it never gets out of the messagesDir?

@ericf
Copy link
Collaborator

ericf commented Dec 7, 2015

I don't understand the problem. What are the values for: the dir you're running Babel in, the configured messagesDir, the dir where the .js file is outputted, and the dir where the .json files are outputted?

@bartvde
Copy link
Author

bartvde commented Dec 7, 2015

Run babel from: /Users/bartvandeneijnden/opengeo/git/sdk-apps/tabbed/
messagesDir: /Users/bartvandeneijnden/opengeo/git/sdk-apps/tabbed/build/messages/
dir where .js is outputted: /Users/bartvandeneijnden/opengeo/git/sdk-apps/tabbed/build/
dir where json files are outputted: /Users/bartvandeneijnden/opengeo/git/sdk-apps/tabbed/sdk/js/

@ericf
Copy link
Collaborator

ericf commented Dec 7, 2015

Sorry I also meant to ask the source path to a JS file. Is it not under sdk-apps/tabbed/?

What I'm thinking is that the problem is happening here: https://github.com/yahoo/babel-plugin-react-intl/blob/master/src/index.js#L157-L161

If you can step through those lines while running Babel that might show where the issue is. I haven't seen this happen before so I'm trying to figure out what's different with the inputs to this code that are resulting in the unexpected output.

@bartvde
Copy link
Author

bartvde commented Dec 7, 2015

Some of the source files are under the root dir of the app (sdk-apps/tabbed/), others are in sdk-apps/tabbed/node_modules/boundless-sdk/js/components/ (those are the ones causing the issue. I've stepped through that code block before but will do it again.

@ericf
Copy link
Collaborator

ericf commented Dec 7, 2015

I've never tried to compile code in node_modules with Babel and this plugin, so it's likely something with that which is different. Are you using Webpack or something to run Babel on dependencies?

@bartvde
Copy link
Author

bartvde commented Dec 7, 2015

Here is the output from my logging:

 filename: /Users/bartvandeneijnden/opengeo/git/sdk-apps/tabbed/app.jsx
p.relative(process.cwd(), filename): app.jsx
p.dirname(p.relative(process.cwd(), filename)): .
filename: /Users/bartvandeneijnden/opengeo/git/sdk/js/components/Geocoding.jsx
p.relative(process.cwd(), filename): ../../sdk/js/components/Geocoding.jsx
p.dirname(p.relative(process.cwd(), filename)): ../../sdk/js/components
filename: /Users/bartvandeneijnden/opengeo/git/sdk/js/components/FeatureTable.jsx
p.relative(process.cwd(), filename): ../../sdk/js/components/FeatureTable.jsx
p.dirname(p.relative(process.cwd(), filename)): ../../sdk/js/components
filename: /Users/bartvandeneijnden/opengeo/git/sdk/js/components/GeocodingResults.jsx
p.relative(process.cwd(), filename): ../../sdk/js/components/GeocodingResults.jsx
p.dirname(p.relative(process.cwd(), filename)): ../../sdk/js/components
filename: /Users/bartvandeneijnden/opengeo/git/sdk/js/components/QueryBuilder.jsx
p.relative(process.cwd(), filename): ../../sdk/js/components/QueryBuilder.jsx
p.dirname(p.relative(process.cwd(), filename)): ../../sdk/js/components
filename: /Users/bartvandeneijnden/opengeo/git/sdk/js/components/Select.jsx
p.relative(process.cwd(), filename): ../../sdk/js/components/Select.jsx
p.dirname(p.relative(process.cwd(), filename)): ../../sdk/js/components
filename: /Users/bartvandeneijnden/opengeo/git/sdk/js/components/Measure.jsx
p.relative(process.cwd(), filename): ../../sdk/js/components/Measure.jsx
p.dirname(p.relative(process.cwd(), filename)): ../../sdk/js/components
filename: /Users/bartvandeneijnden/opengeo/git/sdk/js/components/Chart.jsx
p.relative(process.cwd(), filename): ../../sdk/js/components/Chart.jsx
p.dirname(p.relative(process.cwd(), filename)): ../../sdk/js/components
filename: /Users/bartvandeneijnden/opengeo/git/sdk/js/components/Geolocation.jsx
p.relative(process.cwd(), filename): ../../sdk/js/components/Geolocation.jsx
p.dirname(p.relative(process.cwd(), filename)): ../../sdk/js/components
filename: /Users/bartvandeneijnden/opengeo/git/sdk/js/components/ImageExport.jsx
p.relative(process.cwd(), filename): ../../sdk/js/components/ImageExport.jsx
p.dirname(p.relative(process.cwd(), filename)): ../../sdk/js/components
filename: /Users/bartvandeneijnden/opengeo/git/sdk/js/components/QGISLegend.jsx
p.relative(process.cwd(), filename): ../../sdk/js/components/QGISLegend.jsx
p.dirname(p.relative(process.cwd(), filename)): ../../sdk/js/components
filename: /Users/bartvandeneijnden/opengeo/git/sdk/js/components/QGISPrint.jsx
p.relative(process.cwd(), filename): ../../sdk/js/components/QGISPrint.jsx
p.dirname(p.relative(process.cwd(), filename)): ../../sdk/js/components
filename: /Users/bartvandeneijnden/opengeo/git/sdk/js/components/AddLayer.jsx
p.relative(process.cwd(), filename): ../../sdk/js/components/AddLayer.jsx
p.dirname(p.relative(process.cwd(), filename)): ../../sdk/js/components
filename: /Users/bartvandeneijnden/opengeo/git/sdk/js/components/HomeButton.jsx
p.relative(process.cwd(), filename): ../../sdk/js/components/HomeButton.jsx
p.dirname(p.relative(process.cwd(), filename)): ../../sdk/js/components
filename: /Users/bartvandeneijnden/opengeo/git/sdk/js/components/LayerListItem.jsx
p.relative(process.cwd(), filename): ../../sdk/js/components/LayerListItem.jsx
p.dirname(p.relative(process.cwd(), filename)): ../../sdk/js/components

@bartvde
Copy link
Author

bartvde commented Dec 7, 2015

I'm using browserify with this transform:

  "browserify": {
    "transform": [
      "cssify",
      "babelify"
    ]
  }

and this is my .babel.rc:

{
  "plugins": ["react-intl"],
  "extra": {
    "react-intl": {
        "messagesDir": "./build/messages/",
        "enforceDescriptions": true
    }
  }
}

@bartvde
Copy link
Author

bartvde commented Dec 7, 2015

This is a directory listing of the app's node modules:

Barts-MacBook-Air:tabbed bartvandeneijnden$ ls -l node_modules/
total 24
drwxr-xr-x  10 bartvandeneijnden  staff  340 Dec  4 09:33 babel-plugin-react-intl
drwxr-xr-x   9 bartvandeneijnden  staff  306 Dec  3 14:56 babelify
lrwxr-xr-x   1 bartvandeneijnden  staff   71 Dec  3 15:05 boundless-sdk -> ../../../../../.nvm/versions/node/v4.2.2/lib/node_modules/boundless-sdk
drwxr-xr-x  13 bartvandeneijnden  staff  442 Dec  3 14:57 browserify
drwxr-xr-x   9 bartvandeneijnden  staff  306 Dec  3 14:56 cssify
drwxr-xr-x  10 bartvandeneijnden  staff  340 Dec  3 14:56 envify
drwxr-xr-x  10 bartvandeneijnden  staff  340 Dec  3 14:56 minifyify
lrwxr-xr-x   1 bartvandeneijnden  staff   68 Dec  3 16:34 openlayers -> ../../../../../.nvm/versions/node/v4.2.2/lib/node_modules/openlayers
drwxr-xr-x   7 bartvandeneijnden  staff  238 Dec  3 14:56 pui-react-buttons
drwxr-xr-x   8 bartvandeneijnden  staff  272 Dec  3 14:56 pui-react-tabs
lrwxr-xr-x   1 bartvandeneijnden  staff   63 Dec  3 15:05 react -> ../../../../../.nvm/versions/node/v4.2.2/lib/node_modules/react
drwxr-xr-x   9 bartvandeneijnden  staff  306 Dec  3 14:56 react-dom
drwxr-xr-x  10 bartvandeneijnden  staff  340 Dec  3 14:57 react-intl
drwxr-xr-x   6 bartvandeneijnden  staff  204 Dec  4 09:05 sdk-debug-server
drwxr-xr-x   9 bartvandeneijnden  staff  306 Dec  3 14:56 through
drwxr-xr-x  12 bartvandeneijnden  staff  408 Dec  3 14:56 watchify

The symbolic links are because of the usage of npm link

When I don't use a link, all is fine. However, I need to use a link so I can edit the boundless-sdk node module from the app during development.

@ericf
Copy link
Collaborator

ericf commented Dec 7, 2015

If you can edit the plugin code locally to get it to work within your setup, feel free to send a PR. When I get a chance I'll try to setup a simple project to reproduce that uses symlinks to see if I can reproduce.

@ericf
Copy link
Collaborator

ericf commented Feb 6, 2016

This should now be fixed with the changes from #32

@ericf ericf closed this as completed Feb 6, 2016
@bartvde
Copy link
Author

bartvde commented Feb 8, 2016

thanks!

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants