mirror of
https://github.com/Kong/insomnia
synced 2024-11-07 14:19:58 +00:00
MVP build process
This commit is contained in:
parent
71e4d1658e
commit
3378a03e0c
3
.gitignore
vendored
3
.gitignore
vendored
@ -1,5 +1,6 @@
|
||||
node_modules
|
||||
.idea
|
||||
dist
|
||||
dist/*
|
||||
builds/*
|
||||
npm-debug.log
|
||||
*.db*
|
||||
|
@ -6,6 +6,7 @@
|
||||
</head>
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
<script src="./node_modules/pouchdb/dist/pouchdb.js"></script>
|
||||
<script>
|
||||
(function () {
|
||||
const script = document.createElement('script');
|
||||
|
@ -1,6 +1,7 @@
|
||||
'use strict';
|
||||
|
||||
// Don't npm install this (it breaks). Rely on the global one.
|
||||
import electron from 'electron';
|
||||
const electron = require('electron');
|
||||
|
||||
const app = electron.app; // Module to control application life.
|
||||
const BrowserWindow = electron.BrowserWindow; // Module to create native browser window.
|
||||
@ -26,7 +27,7 @@ app.on('ready', () => {
|
||||
});
|
||||
|
||||
// and load the app.html of the app.
|
||||
mainWindow.loadURL(`file://${__dirname}/app/app.html`);
|
||||
mainWindow.loadURL(`file://${__dirname}/app.html`);
|
||||
|
||||
// Open the DevTools.
|
||||
// if (IS_DEV) {
|
@ -1,12 +1,15 @@
|
||||
import PouchDB from 'pouchdb';
|
||||
// import PouchDB from 'pouchdb';
|
||||
import * as methods from '../constants/global';
|
||||
import {generateId} from './util'
|
||||
import pouchDBFind from 'pouchdb-find'
|
||||
|
||||
// Add plugins
|
||||
// We have to include the web version of PouchDB in app.html because
|
||||
// the NodeJS version defaults to LevelDB which is hard (impossible?)
|
||||
// to get working in Electron apps
|
||||
PouchDB.plugin(pouchDBFind);
|
||||
|
||||
let db = new PouchDB('insomnia.db');
|
||||
let db = new PouchDB('insomnia.db', {adapter: 'websql'});
|
||||
|
||||
// For browser console debugging
|
||||
global.db = db;
|
||||
|
@ -71,3 +71,4 @@ render(
|
||||
<Provider store={store}><App /></Provider>,
|
||||
document.getElementById('root')
|
||||
);
|
||||
|
||||
|
15
app/package.json
Normal file
15
app/package.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"name": "insomnia",
|
||||
"productName": "Insomnia REST Client",
|
||||
"description": "The best REST API Client",
|
||||
"homepage": "http://insomnia.rest",
|
||||
"licence": "MIT",
|
||||
"version": "3.0.0",
|
||||
"main": "app.js",
|
||||
"dependencies": {
|
||||
"nunjucks": "^1.3.4",
|
||||
"pouchdb": "^5.3.1",
|
||||
"pouchdb-find": "^0.9.0",
|
||||
"request": "^2.71.0"
|
||||
}
|
||||
}
|
24
package.json
24
package.json
@ -12,17 +12,13 @@
|
||||
"classnames": "^2.2.3",
|
||||
"codemirror": "^5.12.0",
|
||||
"jsonschema": "^1.1.0",
|
||||
"nunjucks": "^1.3.4",
|
||||
"pouchdb": "^5.3.1",
|
||||
"pouchdb-find": "^0.9.0",
|
||||
"react": "^0.14.7",
|
||||
"react-dom": "^0.14.7",
|
||||
"react-redux": "^4.4.1",
|
||||
"react-tabs": "^0.5.3",
|
||||
"redux": "^3.3.1",
|
||||
"redux-logger": "^2.6.1",
|
||||
"redux-thunk": "^2.0.1",
|
||||
"request": "^2.71.0"
|
||||
"redux-thunk": "^2.0.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"babel-core": "^6.7.2",
|
||||
@ -36,11 +32,16 @@
|
||||
"babel-preset-react-hmre": "^1.1.1",
|
||||
"concurrently": "^2.0.0",
|
||||
"css-loader": "^0.23.1",
|
||||
"del": "^2.2.0",
|
||||
"electron-builder": "^3.6.1",
|
||||
"electron-packager": "^7.0.0",
|
||||
"electron-prebuilt": "^0.37.6",
|
||||
"express": "latest",
|
||||
"file-loader": "^0.8.5",
|
||||
"jest": "^0.1.40",
|
||||
"jest-cli": "^0.9.2",
|
||||
"json-loader": "^0.5.4",
|
||||
"minimist": "latest",
|
||||
"node-sass": "^3.4.2",
|
||||
"react-addons-test-utils": "^0.14.7",
|
||||
"react-hot-loader": "^1.3.0",
|
||||
@ -54,13 +55,20 @@
|
||||
"webpack-hot-middleware": "^2.10.0",
|
||||
"webpack-target-electron-renderer": "^0.4.0"
|
||||
},
|
||||
"build": {
|
||||
"app-bundle-id": "rest.insomnia.app",
|
||||
"app-category-type": "public.app-category.productivity",
|
||||
"iconUrl": "(windows only)"
|
||||
},
|
||||
"scripts": {
|
||||
"start-hot": "HOT=1 NODE_ENV=development electron -r babel-register ./electron.js",
|
||||
"start-hot": "HOT=1 NODE_ENV=development electron -r babel-register ./app/app.js",
|
||||
"hot-server": "node -r babel-register ./webpack/server.js",
|
||||
"dev": "concurrently --kill-others \"npm run hot-server\" \"npm run start-hot\"",
|
||||
"test": "jest $@",
|
||||
"package": "./scripts/package"
|
||||
},
|
||||
"package": "./scripts/package",
|
||||
"package-all": "npm run package -- --all",
|
||||
"postinstall": "cd node_modules/leveldown && HOME=~/.electron-gyp node-gyp rebuild --target=0.36.10 --arch=x64 --dist-url=https://atom.io/download/atom-shell"
|
||||
},
|
||||
"jest": {
|
||||
"unmockedModulePathPatterns": [
|
||||
"<rootDir>/node_modules/redux-thunk",
|
||||
|
@ -2,8 +2,17 @@
|
||||
#? Package the app
|
||||
|
||||
rm -r dist/*
|
||||
webpack --config webpack/webpack.config.production.js
|
||||
# cp -r node_modules electron.js package.json dist/
|
||||
cp electron.js package.json dist/
|
||||
cd dist
|
||||
NODE_ENV=production npm install
|
||||
NODE_ENV=production node -r babel-register ./node_modules/.bin/webpack --config ./webpack/webpack.config.production.js
|
||||
|
||||
cp app/package.json app/app.js dist/
|
||||
cp -r app/node_modules dist/
|
||||
# cd dist/; NODE_ENV=production npm install; cd ..
|
||||
|
||||
node -r babel-register node_modules/electron-packager/cli.js \
|
||||
dist \
|
||||
Insomnia \
|
||||
--platform=darwin \
|
||||
--arch=x64 \
|
||||
--out=builds \
|
||||
--overwrite
|
||||
|
||||
|
11
scripts/package.js
Normal file
11
scripts/package.js
Normal file
@ -0,0 +1,11 @@
|
||||
import packager from 'electron-packager'
|
||||
|
||||
const options = {
|
||||
arch: 'x64',
|
||||
platform: 'darwin',
|
||||
dir: './dist'
|
||||
};
|
||||
|
||||
packager(options, (err, appPaths) => {
|
||||
console.log(err, appPaths);
|
||||
});
|
@ -59,14 +59,10 @@ export default {
|
||||
extensions: ['', '.js', '.json', '.jsx'],
|
||||
packageMains: ['webpack', 'browser', 'web', 'browserify', ['jam', 'main'], 'main']
|
||||
},
|
||||
plugins: [
|
||||
new webpack.ExternalsPlugin('commonjs', [
|
||||
'request',
|
||||
'nunjucks',
|
||||
'pouchdb',
|
||||
'pouchdb-find'
|
||||
])
|
||||
externals: [
|
||||
'request'
|
||||
],
|
||||
plugins: [],
|
||||
target: 'electron-renderer'
|
||||
};
|
||||
|
||||
|
@ -1,12 +1,15 @@
|
||||
import * as base from './webpack.config.base'
|
||||
import webpack from 'webpack'
|
||||
import baseConfig from './webpack.config.base'
|
||||
|
||||
base.plugins = base.plugins.concat([
|
||||
export default {
|
||||
...baseConfig,
|
||||
plugins: [
|
||||
...baseConfig.plugins,
|
||||
new webpack.DefinePlugin({
|
||||
__DEV__: false,
|
||||
'process.env': {
|
||||
NODE_ENV: JSON.stringify('production')
|
||||
}
|
||||
})
|
||||
]);
|
||||
|
||||
module.exports = base;
|
||||
]
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user