Parcel was convenient, but rollup is more versatile, without the esotaric webpack configuration
This commit is contained in:
parent
747c7ee810
commit
9a7eccb55e
8
.babelrc
8
.babelrc
@ -1,5 +1,6 @@
|
|||||||
{
|
{
|
||||||
"presets": [
|
"presets": [
|
||||||
|
"inferno-app",
|
||||||
["env", {
|
["env", {
|
||||||
"targets": {
|
"targets": {
|
||||||
"browsers": [
|
"browsers": [
|
||||||
@ -7,11 +8,12 @@
|
|||||||
"not ie 11",
|
"not ie 11",
|
||||||
"not op_mini all"
|
"not op_mini all"
|
||||||
]
|
]
|
||||||
}
|
},
|
||||||
}],
|
"modules": false
|
||||||
"inferno-app"
|
}]
|
||||||
],
|
],
|
||||||
"plugins": [
|
"plugins": [
|
||||||
|
"external-helpers",
|
||||||
["module-resolver", {
|
["module-resolver", {
|
||||||
"root": ["./src"],
|
"root": ["./src"],
|
||||||
"alias": {
|
"alias": {
|
||||||
|
34
package.json
34
package.json
@ -5,7 +5,11 @@
|
|||||||
"version": "0.5.0",
|
"version": "0.5.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"build": {
|
"build": {
|
||||||
"appId": "net.timshomepage.film-exif"
|
"asar": true,
|
||||||
|
"appId": "net.timshomepage.film-exif",
|
||||||
|
"mac": {
|
||||||
|
"category": "public.app-category.photography"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"electron-log": "^2.2.14",
|
"electron-log": "^2.2.14",
|
||||||
@ -15,7 +19,7 @@
|
|||||||
"inferno-bootstrap": "^5.0.2",
|
"inferno-bootstrap": "^5.0.2",
|
||||||
"inferno-dev-utils": "^5.3.0",
|
"inferno-dev-utils": "^5.3.0",
|
||||||
"inferno-router": "^5.0.6",
|
"inferno-router": "^5.0.6",
|
||||||
"lodash": "^4.17.10",
|
"lodash-es": "^4.17.10",
|
||||||
"ws": "^5.2.0"
|
"ws": "^5.2.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
@ -23,6 +27,7 @@
|
|||||||
"@babel/preset-env": "^7.0.0-beta.49",
|
"@babel/preset-env": "^7.0.0-beta.49",
|
||||||
"babel-eslint": "^8.2.2",
|
"babel-eslint": "^8.2.2",
|
||||||
"babel-jest": "^23.0.1",
|
"babel-jest": "^23.0.1",
|
||||||
|
"babel-plugin-external-helpers": "^6.22.0",
|
||||||
"babel-plugin-module-resolver": "^3.1.1",
|
"babel-plugin-module-resolver": "^3.1.1",
|
||||||
"babel-preset-inferno-app": "^7.1.0",
|
"babel-preset-inferno-app": "^7.1.0",
|
||||||
"babel-runtime": "^6.26.0",
|
"babel-runtime": "^6.26.0",
|
||||||
@ -39,20 +44,31 @@
|
|||||||
"eslint-plugin-node": "^6.0.1",
|
"eslint-plugin-node": "^6.0.1",
|
||||||
"eslint-plugin-promise": "^3.8.0",
|
"eslint-plugin-promise": "^3.8.0",
|
||||||
"eslint-plugin-standard": "^3.0.1",
|
"eslint-plugin-standard": "^3.0.1",
|
||||||
"extract-text-webpack-plugin": "3.0.2",
|
|
||||||
"husky": "^0.14.3",
|
"husky": "^0.14.3",
|
||||||
"jest": "^23.0.1",
|
"jest": "^23.0.1",
|
||||||
"jquery": "^3.3.1",
|
"jquery": "^3.3.1",
|
||||||
"parcel-bundler": "^1.7.1",
|
"raf": "^3.4.0",
|
||||||
"raf": "^3.4.0"
|
"rollup": "^0.59.4",
|
||||||
|
"rollup-plugin-alias": "^1.4.0",
|
||||||
|
"rollup-plugin-babel": "^3.0.4",
|
||||||
|
"rollup-plugin-commonjs": "^9.1.3",
|
||||||
|
"rollup-plugin-cpy": "^1.0.0",
|
||||||
|
"rollup-plugin-filesize": "^1.5.0",
|
||||||
|
"rollup-plugin-livereload": "^0.6.0",
|
||||||
|
"rollup-plugin-node-resolve": "^3.3.0",
|
||||||
|
"rollup-plugin-replace": "^2.0.0",
|
||||||
|
"rollup-plugin-serve": "^0.4.2",
|
||||||
|
"rollup-plugin-terser": "^1.0.1",
|
||||||
|
"rollup-plugin-uglify": "^4.0.0",
|
||||||
|
"rollup-plugin-visualizer": "^0.6.0"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "parcel build index.html --out-dir build/app --detailed-report",
|
"build": "rollup --config rollup.prod.js",
|
||||||
"dist": "yarn run build && build",
|
"dist": "yarn run build && build",
|
||||||
"electron-start": "node src/electron/wait-inferno",
|
"electron-start": "node src/electron/wait-inferno",
|
||||||
"electron": "electron .",
|
"electron": "electron .",
|
||||||
"fix": "eslint --fix src/**/*.js",
|
"fix": "eslint --fix src/**/*.js",
|
||||||
"inferno-start": "parcel index.html -p 3000",
|
"inferno-start": "rollup --config rollup.dev.js --watch",
|
||||||
"lint": "eslint src/**/*.js",
|
"lint": "eslint src/**/*.js",
|
||||||
"pack": "build --dir",
|
"pack": "build --dir",
|
||||||
"postinstall": "electron-builder install-app-deps",
|
"postinstall": "electron-builder install-app-deps",
|
||||||
@ -60,11 +76,7 @@
|
|||||||
"react-start": "npm run inferno-start",
|
"react-start": "npm run inferno-start",
|
||||||
"test": "node scripts/test.js --env=jsdom"
|
"test": "node scripts/test.js --env=jsdom"
|
||||||
},
|
},
|
||||||
"homepage": "./",
|
|
||||||
"main": "src/electron/index.js",
|
"main": "src/electron/index.js",
|
||||||
"mac": {
|
|
||||||
"category": "public.app-category.photography"
|
|
||||||
},
|
|
||||||
"jest": {
|
"jest": {
|
||||||
"collectCoverageFrom": [
|
"collectCoverageFrom": [
|
||||||
"src/**/*.{js,jsx,mjs}"
|
"src/**/*.{js,jsx,mjs}"
|
||||||
|
@ -3,13 +3,14 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
<link rel="shortcut icon" href="%PUBLIC_URL%/favicon.ico" />
|
<link rel="shortcut icon" href="./favicon.ico" />
|
||||||
<link rel="stylesheet" href="%PUBLIC_URL%/css/bootstrap.css" />
|
<link rel="stylesheet" href="./css/bootstrap.css" />
|
||||||
<link rel="stylesheet" href="%PUBLIC_URL%/css/app.css" />
|
<link rel="stylesheet" href="./css/app.css" />
|
||||||
<title>Inferno App</title>
|
<title>Inferno App</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<film-exif id="app"></film-exif>
|
<film-exif id="app"></film-exif>
|
||||||
|
<script type="module" src="./bundle.js"></script>
|
||||||
<noscript>
|
<noscript>
|
||||||
You need to enable JavaScript to run this app.
|
You need to enable JavaScript to run this app.
|
||||||
</noscript>
|
</noscript>
|
||||||
|
34
rollup.config.js
Normal file
34
rollup.config.js
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
import babel from 'rollup-plugin-babel';
|
||||||
|
import copy from 'rollup-plugin-cpy';
|
||||||
|
import commonjs from 'rollup-plugin-commonjs';
|
||||||
|
import replace from 'rollup-plugin-replace';
|
||||||
|
import resolve from 'rollup-plugin-node-resolve';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
input: 'src/index.js',
|
||||||
|
output: {
|
||||||
|
file: 'build/bundle.js',
|
||||||
|
format: 'es',
|
||||||
|
sourcemap: true,
|
||||||
|
},
|
||||||
|
plugins: [
|
||||||
|
copy([{
|
||||||
|
dest: 'build/',
|
||||||
|
files: ['public/index.html', 'public/favicon.ico'],
|
||||||
|
}, {
|
||||||
|
dest: 'build/css/',
|
||||||
|
files: ['public/css/bootstrap.css', 'public/css/app.css'],
|
||||||
|
}]),
|
||||||
|
replace({
|
||||||
|
'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV),
|
||||||
|
}),
|
||||||
|
resolve({
|
||||||
|
jsnext: true,
|
||||||
|
browser: true,
|
||||||
|
}),
|
||||||
|
babel({
|
||||||
|
exclude: 'node_modules/**',
|
||||||
|
}),
|
||||||
|
commonjs(),
|
||||||
|
],
|
||||||
|
};
|
30
rollup.dev.js
Normal file
30
rollup.dev.js
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
import baseConfig from './rollup.config';
|
||||||
|
|
||||||
|
import alias from 'rollup-plugin-alias';
|
||||||
|
import filesize from 'rollup-plugin-filesize';
|
||||||
|
import livereload from 'rollup-plugin-livereload';
|
||||||
|
import serve from 'rollup-plugin-serve';
|
||||||
|
|
||||||
|
// Force the appropriate environment
|
||||||
|
process.env.NODE_ENV = 'development';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
...baseConfig,
|
||||||
|
plugins: [
|
||||||
|
alias({
|
||||||
|
'inferno': `${__dirname}/node_modules/inferno/dist/index.dev.esm.js`,
|
||||||
|
}),
|
||||||
|
...baseConfig.plugins,
|
||||||
|
filesize(),
|
||||||
|
serve({
|
||||||
|
contentBase: ['./public', './build'],
|
||||||
|
host: 'localhost',
|
||||||
|
headers: {
|
||||||
|
'Access-Control-Allow-Origin': '*',
|
||||||
|
},
|
||||||
|
historyApiFallback: true,
|
||||||
|
port: 3000,
|
||||||
|
}),
|
||||||
|
livereload(),
|
||||||
|
],
|
||||||
|
};
|
15
rollup.prod.js
Normal file
15
rollup.prod.js
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
import baseConfig from './rollup.config';
|
||||||
|
import filesize from 'rollup-plugin-filesize';
|
||||||
|
import { terser } from 'rollup-plugin-terser';
|
||||||
|
|
||||||
|
// Force the appropriate environment
|
||||||
|
process.env.NODE_ENV = 'production';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
...baseConfig,
|
||||||
|
plugins: [
|
||||||
|
...baseConfig.plugins,
|
||||||
|
terser(),
|
||||||
|
filesize(),
|
||||||
|
],
|
||||||
|
};
|
@ -1,4 +1,4 @@
|
|||||||
import * as _ from 'lodash';
|
import _ from 'lodash-es';
|
||||||
import { JSONMessage } from '//helpers/web-socket';
|
import { JSONMessage } from '//helpers/web-socket';
|
||||||
|
|
||||||
export class WSCache {
|
export class WSCache {
|
||||||
|
@ -22,3 +22,4 @@ export const Loader = (props) => {
|
|||||||
</section>
|
</section>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
Loader.displayName = 'Loader';
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import * as _ from 'lodash';
|
import _ from 'lodash-es';
|
||||||
import { Component } from 'inferno';
|
import { Component } from 'inferno';
|
||||||
import {
|
import {
|
||||||
Button,
|
Button,
|
||||||
@ -24,6 +24,9 @@ export class HomeView extends Component {
|
|||||||
_.bindAll(this, [
|
_.bindAll(this, [
|
||||||
'bindEvents',
|
'bindEvents',
|
||||||
'handleDrop',
|
'handleDrop',
|
||||||
|
'showErrorDialog',
|
||||||
|
'showOpenDialog',
|
||||||
|
'showSaveDialog',
|
||||||
'toggleErrorModal',
|
'toggleErrorModal',
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user