summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--animism-align/cli/commands/site/export.py14
-rw-r--r--animism-align/frontend/app/constants.js4
-rw-r--r--animism-align/frontend/site/index.js1
-rw-r--r--animism-align/webpack.config.prod.js4
-rw-r--r--animism-align/webpack.config.site.js67
5 files changed, 83 insertions, 7 deletions
diff --git a/animism-align/cli/commands/site/export.py b/animism-align/cli/commands/site/export.py
index e1d5e58..29804c1 100644
--- a/animism-align/cli/commands/site/export.py
+++ b/animism-align/cli/commands/site/export.py
@@ -45,6 +45,12 @@ def cli(ctx, opt_output_dir):
prune_db(db)
media_to_copy = rewrite_db_media(db, site_fp_media, media_url)
+ db['urls'] = { 'audio': 'media/animism_episode_01.mp3' }
+ media_to_copy.append({
+ 'src': join(app_cfg.DIR_DATA_STORE, 'peaks/animism_episode_01_2810.mp3'),
+ 'dst': join(site_fp_media, 'animism_episode_01.mp3'),
+ })
+
# ------------------------------------------------
# build the index.html
@@ -82,10 +88,10 @@ def cli(ctx, opt_output_dir):
# ------------------------------------------------
# build javascript
- # print("Building javascript...")
- # print(f'NODE_ENV=production node ./node_modules/webpack-cli/bin/cli.js --config ./webpack.config.site.js -o {graph_dir}/bundle.js')
- # os.chdir(app_cfg.DIR_PROJECT_ROOT)
- # os.system(f'NODE_ENV=production node ./node_modules/webpack-cli/bin/cli.js --config ./webpack.config.site.js -o {graph_dir}/bundle.js')
+ print("Building javascript...")
+ print(f'NODE_ENV=production node ./node_modules/webpack-cli/bin/cli.js --config ./webpack.config.site.js -o {site_fp_out}/bundle.js')
+ os.chdir(app_cfg.DIR_PROJECT_ROOT)
+ os.system(f'NODE_ENV=production node ./node_modules/webpack-cli/bin/cli.js --config ./webpack.config.site.js -o {site_fp_out}/bundle.js')
print("Site export complete!")
print(f"Site exported to: {site_fp_out}")
diff --git a/animism-align/frontend/app/constants.js b/animism-align/frontend/app/constants.js
index 75137b6..62e9458 100644
--- a/animism-align/frontend/app/constants.js
+++ b/animism-align/frontend/app/constants.js
@@ -4,7 +4,9 @@ export const { NODE_ENV } = process.env
export const ENV_DEVELOPMENT = NODE_ENV !== 'production'
export const ENV_PRODUCTION = NODE_ENV === 'production'
-export const URLS = {
+export const URLS = ENV_PRODUCTION ? {
+ audio: 'media/animism_episode_01_2810.mp3',
+} : {
audio: '/static/data_store/peaks/animism_episode_01_2810.mp3',
peaks: '/static/data_store/peaks/peaks.json',
text: '/static/data_store/peaks/text.txt',
diff --git a/animism-align/frontend/site/index.js b/animism-align/frontend/site/index.js
index 838b012..ab7c998 100644
--- a/animism-align/frontend/site/index.js
+++ b/animism-align/frontend/site/index.js
@@ -3,6 +3,7 @@ import ReactDOM from 'react-dom'
import { Provider } from 'react-redux'
import './site.css'
+import 'app/common/forms.css'
import { store } from './store'
diff --git a/animism-align/webpack.config.prod.js b/animism-align/webpack.config.prod.js
index b57c765..ae3cc45 100644
--- a/animism-align/webpack.config.prod.js
+++ b/animism-align/webpack.config.prod.js
@@ -18,8 +18,8 @@ module.exports = {
plugins: [
new webpack.DefinePlugin({
'process.env.NODE_ENV': JSON.stringify("production"),
- 'process.env.S3_HOST': JSON.stringify(process.env.S3_HOST || ""),
- 'process.env.API_HOST': JSON.stringify(process.env.API_HOST || ""),
+ // 'process.env.S3_HOST': JSON.stringify(process.env.S3_HOST || ""),
+ // 'process.env.API_HOST': JSON.stringify(process.env.API_HOST || ""),
}),
new TerserPlugin(),
new webpack.optimize.AggressiveMergingPlugin(),
diff --git a/animism-align/webpack.config.site.js b/animism-align/webpack.config.site.js
new file mode 100644
index 0000000..35ce715
--- /dev/null
+++ b/animism-align/webpack.config.site.js
@@ -0,0 +1,67 @@
+require('dotenv').config()
+
+const webpack = require('webpack')
+const path = require('path')
+const TerserPlugin = require('terser-webpack-plugin')
+
+module.exports = {
+ mode: "production",
+ entry: {
+ main: './frontend/site/index.js'
+ },
+ output: {
+ path: path.resolve(__dirname, 'static/js/dist'),
+ filename: 'bundle.js'
+ },
+ plugins: [
+ new webpack.DefinePlugin({
+ 'process.env.NODE_ENV': JSON.stringify("production"),
+ // 'process.env.S3_HOST': JSON.stringify(process.env.S3_HOST || ""),
+ // 'process.env.API_HOST': JSON.stringify(process.env.API_HOST || ""),
+ '__REACT_DEVTOOLS_GLOBAL_HOOK__': '({ isDisabled: true })'
+ }),
+ new TerserPlugin(),
+ new webpack.optimize.AggressiveMergingPlugin(),
+ // new Visualizer({
+ // filename: './statistics.html'
+ // })
+ ],
+ optimization: {
+ minimize: true,
+ minimizer: [new TerserPlugin({
+ terserOptions: {
+ compress: {
+ // drop_console: true,
+ }
+ }
+ })],
+ },
+ resolve: {
+ alias: {
+ // "react": "preact/compat",
+ // "react-dom/test-utils": "preact/test-utils",
+ // "react-dom": "preact/compat",
+ }
+ },
+ devtool: 'cheap-module-source-map',
+ module: {
+ rules: [
+ {
+ test: /\.css$/,
+ use: ['style-loader', 'css-loader']
+ },
+ {
+ test: /\.js$/,
+ // include: path.resolve(__dirname, 'client'),
+ exclude: /(node_modules|bower_components|build)/,
+ loader: 'babel-loader',
+ options: {
+ presets: ['@babel/preset-react'],
+ plugins: [
+ "@babel/plugin-transform-runtime",
+ ],
+ }
+ }
+ ]
+ },
+};