diff --git a/.gitignore b/.gitignore index 0c88cd5..7cce162 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ dist build nwjs my-profile.json +js-compiled diff --git a/index.html b/index.html index af268f4..32aad08 100644 --- a/index.html +++ b/index.html @@ -15,11 +15,16 @@ global.document = global.window.document; global.navigator = global.window.navigator; - // Auto transform JSX - require('node-jsx').install(); + var isDev = process.env.NODE_ENV === 'development'; - // Launch application - require('./js/app.jsx'); + if(isDev) { + // Auto transform JSX + require('node-jsx').install({extension: '.js'}); + // Launch application + require('./js/app.js'); + } else { + require('./js-compiled/app.js'); + } diff --git a/js/app.jsx b/js/app.js similarity index 92% rename from js/app.jsx rename to js/app.js index 935352d..00103b2 100644 --- a/js/app.jsx +++ b/js/app.js @@ -1,6 +1,6 @@ var React = require('react'); -var LauncherView = require('./components/launcher/launcher-view.jsx'); -var EditView = require('./components/edit/edit-view.jsx'); +var LauncherView = require('./components/launcher/launcher-view.js'); +var EditView = require('./components/edit/edit-view.js'); var Provider = require('react-redux').Provider; var connect = require('react-redux').connect; var store = require('./store'); diff --git a/js/components/common/app-icon.jsx b/js/components/common/app-icon.js similarity index 100% rename from js/components/common/app-icon.jsx rename to js/components/common/app-icon.js diff --git a/js/components/edit/desktop-app-item.jsx b/js/components/edit/desktop-app-item.js similarity index 96% rename from js/components/edit/desktop-app-item.jsx rename to js/components/edit/desktop-app-item.js index 9436cfd..488ed7f 100644 --- a/js/components/edit/desktop-app-item.jsx +++ b/js/components/edit/desktop-app-item.js @@ -1,6 +1,6 @@ var React = require('react'); var Util = require('../../util'); -var AppIcon = require('../common/app-icon.jsx'); +var AppIcon = require('../common/app-icon.js'); var DragSource = require('react-dnd').DragSource; var DesktopAppItem = React.createClass({ diff --git a/js/components/edit/desktop-app-list.jsx b/js/components/edit/desktop-app-list.js similarity index 93% rename from js/components/edit/desktop-app-list.jsx rename to js/components/edit/desktop-app-list.js index f8c2ce1..e080b33 100644 --- a/js/components/edit/desktop-app-list.jsx +++ b/js/components/edit/desktop-app-list.js @@ -1,6 +1,6 @@ var React = require('react'); var Util = require('../../util'); -var DesktopAppItem = require('./desktop-app-item.jsx'); +var DesktopAppItem = require('./desktop-app-item.js'); var path = require('path'); var debug = require('../../util/debug')('pitaya:desktop-app-list'); diff --git a/js/components/edit/edit-view.jsx b/js/components/edit/edit-view.js similarity index 87% rename from js/components/edit/edit-view.jsx rename to js/components/edit/edit-view.js index 50a8952..eb29ffc 100644 --- a/js/components/edit/edit-view.jsx +++ b/js/components/edit/edit-view.js @@ -1,10 +1,10 @@ var React = require('react'); var connect = require('react-redux').connect; -var ProfileTree = require('./profile-tree.jsx'); -var DesktopAppList = require('./desktop-app-list.jsx'); -var ItemForm = require('./item-form.jsx'); -var IconThemeSelector = require('./icon-theme-selector.jsx'); -var ProfileMenu = require('./profile-menu.jsx'); +var ProfileTree = require('./profile-tree.js'); +var DesktopAppList = require('./desktop-app-list.js'); +var ItemForm = require('./item-form.js'); +var IconThemeSelector = require('./icon-theme-selector.js'); +var ProfileMenu = require('./profile-menu.js'); var tree = require('../../util/tree'); var actions = require('../../store/actions'); diff --git a/js/components/edit/icon-theme-selector.jsx b/js/components/edit/icon-theme-selector.js similarity index 100% rename from js/components/edit/icon-theme-selector.jsx rename to js/components/edit/icon-theme-selector.js diff --git a/js/components/edit/item-form.jsx b/js/components/edit/item-form.js similarity index 100% rename from js/components/edit/item-form.jsx rename to js/components/edit/item-form.js diff --git a/js/components/edit/profile-menu.jsx b/js/components/edit/profile-menu.js similarity index 100% rename from js/components/edit/profile-menu.jsx rename to js/components/edit/profile-menu.js diff --git a/js/components/edit/profile-tree.jsx b/js/components/edit/profile-tree.js similarity index 97% rename from js/components/edit/profile-tree.jsx rename to js/components/edit/profile-tree.js index 3e870b7..be742c8 100644 --- a/js/components/edit/profile-tree.jsx +++ b/js/components/edit/profile-tree.js @@ -1,7 +1,7 @@ var React = require('react'); var connect = require('react-redux').connect; var actions = require('../../store/actions'); -var TreeItem = require('./tree-item.jsx'); +var TreeItem = require('./tree-item.js'); var TreeNode = React.createClass({ diff --git a/js/components/edit/tree-item.jsx b/js/components/edit/tree-item.js similarity index 97% rename from js/components/edit/tree-item.jsx rename to js/components/edit/tree-item.js index 0be6d6f..765314d 100644 --- a/js/components/edit/tree-item.jsx +++ b/js/components/edit/tree-item.js @@ -1,6 +1,6 @@ var React = require('react/addons'); var classNames = require('classnames'); -var AppIcon = require('../common/app-icon.jsx'); +var AppIcon = require('../common/app-icon.js'); var DragSource = require('react-dnd').DragSource; var DropTarget = require('react-dnd').DropTarget; var _ = require('lodash'); diff --git a/js/components/launcher/app-item.jsx b/js/components/launcher/app-item.js similarity index 93% rename from js/components/launcher/app-item.jsx rename to js/components/launcher/app-item.js index 8ffb14a..0734d03 100644 --- a/js/components/launcher/app-item.jsx +++ b/js/components/launcher/app-item.js @@ -1,5 +1,5 @@ var React = require('react'); -var AppIcon = require('../common/app-icon.jsx'); +var AppIcon = require('../common/app-icon.js'); module.exports = React.createClass({ diff --git a/js/components/launcher/app-list.jsx b/js/components/launcher/app-list.js similarity index 96% rename from js/components/launcher/app-list.jsx rename to js/components/launcher/app-list.js index 4c13fed..e103083 100644 --- a/js/components/launcher/app-list.jsx +++ b/js/components/launcher/app-list.js @@ -1,5 +1,5 @@ var React = require('react'); -var AppItem = require('./app-item.jsx'); +var AppItem = require('./app-item.js'); module.exports = React.createClass({ diff --git a/js/components/launcher/category-header.jsx b/js/components/launcher/category-header.js similarity index 100% rename from js/components/launcher/category-header.jsx rename to js/components/launcher/category-header.js diff --git a/js/components/launcher/launcher-view.jsx b/js/components/launcher/launcher-view.js similarity index 97% rename from js/components/launcher/launcher-view.jsx rename to js/components/launcher/launcher-view.js index 635d570..8867d8c 100644 --- a/js/components/launcher/launcher-view.jsx +++ b/js/components/launcher/launcher-view.js @@ -1,6 +1,6 @@ var React = require('react'); -var CategoryHeader = require('./category-header.jsx'); -var AppList = require('./app-list.jsx'); +var CategoryHeader = require('./category-header.js'); +var AppList = require('./app-list.js'); var AnimateMixin = require('../mixins/animate'); var actions = require('../../store/actions'); var connect = require('react-redux').connect; diff --git a/main.js b/main.js index 55f5318..05449bb 100644 --- a/main.js +++ b/main.js @@ -1,6 +1,7 @@ var app = require('app'); // Module to control application life. var BrowserWindow = require('browser-window'); // Module to create native browser window. -var constants = require('./js/util/const'); +var isDev = process.env.NODE_ENV === 'development'; +var constants = require('./'+(isDev ? 'js': 'js-compiled')+'/util/const'); var mainWindow = null; diff --git a/package.json b/package.json index 42ceea1..b8ddfe9 100644 --- a/package.json +++ b/package.json @@ -6,12 +6,17 @@ "devDependencies": { "electron-packager": "^5.1.0", "electron-prebuilt": "^0.33.6", - "nodeunit": "^0.9.1" + "nodeunit": "^0.9.1", + "react-tools": "^0.13.3", + "node-jsx": "^0.13.3" }, "scripts": { "test": "./node_modules/.bin/nodeunit test", "start": "./node_modules/.bin/electron .", - "build": "./node_modules/.bin/electron-packager ./ pitaya --platform=linux --arch=ia32,x64 --version=0.33.6 --out=build --overwrite" + "compile": "./node_modules/.bin/jsx -x js js js-compiled", + "clean": "rm -rf js-compiled/* build/*", + "package": "./node_modules/.bin/electron-packager ./ pitaya --prune --ignore=js/ --platform=linux --arch=x64,ia32 --version=0.33.6 --out=build --overwrite --app-version 0.0.0", + "build": "npm run clean && npm run compile && npm run package" }, "dependencies": { "bootstrap": "^3.3.5", @@ -20,8 +25,6 @@ "glob": "^5.0.14", "ini": "^1.3.4", "lodash": "^3.10.1", - "minimist": "^1.1.3", - "node-jsx": "^0.13.3", "react": "^0.13.3", "react-dnd": "^1.1.5", "react-redux": "^2.0.0",