mirror of
https://github.com/aelve/guide.git
synced 2024-12-29 16:48:33 +03:00
parent
de167957da
commit
4367331565
@ -6,14 +6,16 @@
|
||||
"keywords": [],
|
||||
"scripts": {
|
||||
"postinstall": "bower cache clean && bower install",
|
||||
"clean": "rimraf dist && rimraf public/*.js && rimraf output",
|
||||
"build:category-overview": "rimraf output/Main && pulp build --src-path ./client --main Guide.Client.CategoryOverview --include ./common -O > ./public/category-overview.js",
|
||||
"build:category-detail": "rimraf output/Main && pulp build --src-path ./client --main Guide.Client.CategoryDetail --include ./common --no-check-main -O > ./public/category-detail.js",
|
||||
"build:server": "rimraf output/Main && mkdir -p dist && pulp build --src-path ./server -O > ./dist/server.js",
|
||||
"build:client": "npm run clean && webpack --config ./webpack.config.client.js --progress",
|
||||
"clean": "rimraf output",
|
||||
"build:client": "npm run clean && rimraf public/*.js && webpack --config ./webpack.config.client.js --progress",
|
||||
"build:server": "npm run clean && rimraf dist && webpack --config ./webpack.config.server.js --progress",
|
||||
"run:server": "PORT=3333 node dist/server.js",
|
||||
"start": "npm run run:server",
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
"test": "echo \"Error: no test specified\" && exit 1",
|
||||
"--comment--": "All following `build:*-pulp` scripts are for debugging only and will be removed in the future",
|
||||
"build:server-pulp": "rimraf output/Main && mkdir -p dist && pulp build --src-path ./server --include ./common -O > ./dist/server.js",
|
||||
"build:category-detail-pulp": "rimraf output/Main && pulp build --src-path ./client --main Guide.Client.CategoryDetail --include ./common --no-check-main -O > ./public/category-detail.js",
|
||||
"build:category-overview-pulp": "rimraf output/Main && pulp build --src-path ./client --main Guide.Client.CategoryOverview --include ./common -O > ./public/category-overview.js"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
@ -1,44 +1,13 @@
|
||||
|
||||
const spawn = require('child_process').spawn
|
||||
const path = require('path')
|
||||
const webpack = require('webpack')
|
||||
const path = require('path');
|
||||
const webpack = require('webpack');
|
||||
const c = require('./webpack.config.common.js');
|
||||
|
||||
const NamedModulesPlugin = require('webpack/lib/NamedModulesPlugin');
|
||||
|
||||
const isProd = process.env.NODE_ENV === 'production'
|
||||
|
||||
const plugins = [
|
||||
new webpack.ProgressPlugin(),
|
||||
new webpack.DefinePlugin({
|
||||
'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV),
|
||||
'$PRODUCTION': isProd
|
||||
}),
|
||||
new NamedModulesPlugin(),
|
||||
]
|
||||
|
||||
if (isProd) {
|
||||
plugins.push(
|
||||
new webpack.LoaderOptionsPlugin({
|
||||
minimize: true,
|
||||
debug: false
|
||||
}),
|
||||
new webpack.HashedModuleIdsPlugin({
|
||||
hashFunction: 'sha256',
|
||||
hashDigest: 'hex',
|
||||
hashDigestLength: 20
|
||||
})
|
||||
)
|
||||
} else {
|
||||
plugins.push(
|
||||
new webpack.HotModuleReplacementPlugin(),
|
||||
new webpack.NoEmitOnErrorsPlugin()
|
||||
)
|
||||
}
|
||||
|
||||
const config = {
|
||||
module.exports = {
|
||||
context: c.context,
|
||||
entry: {
|
||||
"category-overview": path.join(__dirname, 'client', 'Guide', 'Client', 'CategoryOverview-entry.js'),
|
||||
"category-detail": path.join(__dirname, 'client', 'Guide', 'Client', 'CategoryDetail-entry.js'),
|
||||
"category-detail": path.join(__dirname, 'client', 'Guide', 'Client', 'CategoryDetail-entry.js')
|
||||
},
|
||||
output: {
|
||||
path: path.join(__dirname, '/public'),
|
||||
@ -46,56 +15,16 @@ const config = {
|
||||
filename: '[name].js',
|
||||
pathinfo: true
|
||||
},
|
||||
plugins: plugins,
|
||||
plugins: c.plugins,
|
||||
module: {
|
||||
loaders: [
|
||||
{
|
||||
test: /\.purs$/,
|
||||
loader: 'purs-loader',
|
||||
exclude: /node_modules/,
|
||||
query: {
|
||||
psc: 'psa',
|
||||
src: [
|
||||
path.join(__dirname, 'common', '**', '*.purs'),
|
||||
path.join(__dirname, 'client', '**', '*.purs'),
|
||||
path.join(__dirname, 'bower_components', 'purescript-*', 'src', '**', '*.purs')
|
||||
],
|
||||
bundle: isProd
|
||||
}
|
||||
}
|
||||
],
|
||||
loaders: c.loaders
|
||||
},
|
||||
resolveLoader: {
|
||||
modules: [
|
||||
path.join(__dirname, 'node_modules')
|
||||
]
|
||||
},
|
||||
resolve: {
|
||||
extensions: [ '.js', '.purs'],
|
||||
alias: {
|
||||
'react': 'preact-compat',
|
||||
'react-dom': 'preact-compat',
|
||||
'create-react-class': 'preact-compat/lib/create-react-class'
|
||||
},
|
||||
modules: [
|
||||
'node_modules',
|
||||
'bower_components'
|
||||
],
|
||||
extensions: ['.js', '.purs']
|
||||
},
|
||||
performance: { hints: false },
|
||||
stats: {
|
||||
hash: false,
|
||||
timings: false,
|
||||
version: false,
|
||||
assets: false,
|
||||
errors: true,
|
||||
colors: false,
|
||||
chunks: false,
|
||||
children: false,
|
||||
cached: false,
|
||||
modules: false,
|
||||
chunkModules: false
|
||||
}
|
||||
resolve: c.resolve,
|
||||
performance: c.performance,
|
||||
stats: c.stats
|
||||
}
|
||||
module.exports = config
|
||||
|
93
front-ps/webpack.config.common.js
Normal file
93
front-ps/webpack.config.common.js
Normal file
@ -0,0 +1,93 @@
|
||||
|
||||
const spawn = require('child_process').spawn
|
||||
const path = require('path')
|
||||
const webpack = require('webpack')
|
||||
|
||||
const NamedModulesPlugin = require('webpack/lib/NamedModulesPlugin');
|
||||
|
||||
const isProd = process.env.NODE_ENV === 'production'
|
||||
|
||||
const plugins = [
|
||||
new webpack.ProgressPlugin(),
|
||||
new webpack.DefinePlugin({
|
||||
'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV),
|
||||
'$PRODUCTION': isProd
|
||||
}),
|
||||
new NamedModulesPlugin(),
|
||||
]
|
||||
|
||||
if (isProd) {
|
||||
plugins.push(
|
||||
new webpack.LoaderOptionsPlugin({
|
||||
minimize: true,
|
||||
debug: false
|
||||
}),
|
||||
new webpack.HashedModuleIdsPlugin({
|
||||
hashFunction: 'sha256',
|
||||
hashDigest: 'hex',
|
||||
hashDigestLength: 20
|
||||
})
|
||||
)
|
||||
} else {
|
||||
plugins.push(
|
||||
new webpack.HotModuleReplacementPlugin(),
|
||||
new webpack.NoEmitOnErrorsPlugin()
|
||||
)
|
||||
}
|
||||
|
||||
const loaders = [
|
||||
{
|
||||
test: /\.purs$/,
|
||||
loader: 'purs-loader',
|
||||
exclude: /node_modules/,
|
||||
query: {
|
||||
psc: 'psa',
|
||||
src: [
|
||||
path.join(__dirname, 'common', '**', '*.purs'),
|
||||
path.join(__dirname, 'client', '**', '*.purs'),
|
||||
path.join(__dirname, 'server', '**', '*.purs'),
|
||||
path.join(__dirname, 'bower_components', 'purescript-*', 'src', '**', '*.purs')
|
||||
],
|
||||
bundle: isProd
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
const resolve = {
|
||||
extensions: [ '.js', '.purs'],
|
||||
alias: {
|
||||
'react': 'preact-compat',
|
||||
'react-dom': 'preact-compat',
|
||||
'create-react-class': 'preact-compat/lib/create-react-class'
|
||||
},
|
||||
modules: [
|
||||
'node_modules',
|
||||
'bower_components'
|
||||
],
|
||||
extensions: ['.js', '.purs']
|
||||
}
|
||||
|
||||
const stats = {
|
||||
hash: false,
|
||||
timings: false,
|
||||
version: false,
|
||||
assets: false,
|
||||
errors: true,
|
||||
colors: false,
|
||||
chunks: false,
|
||||
children: false,
|
||||
cached: false,
|
||||
modules: false,
|
||||
chunkModules: false
|
||||
}
|
||||
|
||||
const performance = { hints: false }
|
||||
|
||||
|
||||
module.exports = {
|
||||
plugins,
|
||||
performance,
|
||||
loaders,
|
||||
resolve,
|
||||
stats
|
||||
}
|
29
front-ps/webpack.config.server.js
Normal file
29
front-ps/webpack.config.server.js
Normal file
@ -0,0 +1,29 @@
|
||||
|
||||
const path = require('path');
|
||||
const webpack = require('webpack');
|
||||
const c = require('./webpack.config.common.js');
|
||||
|
||||
module.exports = {
|
||||
target: 'node',
|
||||
entry: {
|
||||
"server": path.join(__dirname, 'server', 'entry.js')
|
||||
},
|
||||
output: {
|
||||
path: path.join(__dirname, 'dist'),
|
||||
publicPath: '/',
|
||||
filename: '[name].js',
|
||||
pathinfo: true
|
||||
},
|
||||
plugins: c.plugins,
|
||||
module: {
|
||||
loaders: c.loaders
|
||||
},
|
||||
resolveLoader: {
|
||||
modules: [
|
||||
path.join(__dirname, 'node_modules')
|
||||
]
|
||||
},
|
||||
resolve: c.resolve,
|
||||
performance: c.performance,
|
||||
stats: c.stats
|
||||
}
|
Loading…
Reference in New Issue
Block a user