mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
Merge branch 'master' into 2913-feature-mirgate-transactions-table-for-x-community-sendcoins
This commit is contained in:
commit
b88e5abdcf
@ -1,3 +1,3 @@
|
|||||||
node_modules/
|
node_modules/
|
||||||
dist/
|
build/
|
||||||
coverage/
|
coverage/
|
||||||
2
admin/.gitignore
vendored
2
admin/.gitignore
vendored
@ -1,5 +1,5 @@
|
|||||||
node_modules/
|
node_modules/
|
||||||
dist/
|
build/
|
||||||
.cache/
|
.cache/
|
||||||
|
|
||||||
/.env
|
/.env
|
||||||
|
|||||||
@ -84,7 +84,7 @@ CMD /bin/sh -c "yarn run dev"
|
|||||||
FROM base as production
|
FROM base as production
|
||||||
|
|
||||||
# Copy "binary"-files from build image
|
# Copy "binary"-files from build image
|
||||||
COPY --from=build ${DOCKER_WORKDIR}/dist ./dist
|
COPY --from=build ${DOCKER_WORKDIR}/build ./build
|
||||||
# We also copy the node_modules express and serve-static for the run script
|
# We also copy the node_modules express and serve-static for the run script
|
||||||
COPY --from=build ${DOCKER_WORKDIR}/node_modules ./node_modules
|
COPY --from=build ${DOCKER_WORKDIR}/node_modules ./node_modules
|
||||||
# Copy static files
|
# Copy static files
|
||||||
|
|||||||
@ -11,7 +11,7 @@
|
|||||||
"serve": "vue-cli-service serve --open",
|
"serve": "vue-cli-service serve --open",
|
||||||
"build": "vue-cli-service build",
|
"build": "vue-cli-service build",
|
||||||
"dev": "yarn run serve",
|
"dev": "yarn run serve",
|
||||||
"analyse-bundle": "yarn build && webpack-bundle-analyzer dist/webpack.stats.json",
|
"analyse-bundle": "yarn build && webpack-bundle-analyzer build/webpack.stats.json",
|
||||||
"lint": "eslint --max-warnings=0 --ext .js,.vue,.json .",
|
"lint": "eslint --max-warnings=0 --ext .js,.vue,.json .",
|
||||||
"stylelint": "stylelint --max-warnings=0 '**/*.{scss,vue}'",
|
"stylelint": "stylelint --max-warnings=0 '**/*.{scss,vue}'",
|
||||||
"test": "cross-env TZ=UTC jest",
|
"test": "cross-env TZ=UTC jest",
|
||||||
|
|||||||
@ -9,10 +9,10 @@ const port = process.env.PORT || 8080
|
|||||||
// Express Server
|
// Express Server
|
||||||
const app = express()
|
const app = express()
|
||||||
// Serve files
|
// Serve files
|
||||||
app.use(express.static(path.join(__dirname, '../dist')))
|
app.use(express.static(path.join(__dirname, '../build')))
|
||||||
// Default to index.html
|
// Default to index.html
|
||||||
app.get('*', (req, res) => {
|
app.get('*', (req, res) => {
|
||||||
res.sendFile(path.join(__dirname, '../dist/index.html'))
|
res.sendFile(path.join(__dirname, '../build/index.html'))
|
||||||
})
|
})
|
||||||
|
|
||||||
app.listen(port, hostname, () => {
|
app.listen(port, hostname, () => {
|
||||||
|
|||||||
@ -37,6 +37,7 @@ export const actions = {
|
|||||||
const store = new Vuex.Store({
|
const store = new Vuex.Store({
|
||||||
plugins: [
|
plugins: [
|
||||||
createPersistedState({
|
createPersistedState({
|
||||||
|
key: 'gradido-admin',
|
||||||
storage: window.localStorage,
|
storage: window.localStorage,
|
||||||
}),
|
}),
|
||||||
],
|
],
|
||||||
|
|||||||
@ -49,5 +49,5 @@ module.exports = {
|
|||||||
// Enable CSS source maps.
|
// Enable CSS source maps.
|
||||||
sourceMap: CONFIG.NODE_ENV !== 'production',
|
sourceMap: CONFIG.NODE_ENV !== 'production',
|
||||||
},
|
},
|
||||||
outputDir: path.resolve(__dirname, './dist'),
|
outputDir: path.resolve(__dirname, './build'),
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,7 +2,6 @@ import { User as dbUser } from '@entity/User'
|
|||||||
import { ObjectType, Field, Int } from 'type-graphql'
|
import { ObjectType, Field, Int } from 'type-graphql'
|
||||||
|
|
||||||
import { KlickTipp } from './KlickTipp'
|
import { KlickTipp } from './KlickTipp'
|
||||||
import { UserContact } from './UserContact'
|
|
||||||
|
|
||||||
@ObjectType()
|
@ObjectType()
|
||||||
export class User {
|
export class User {
|
||||||
@ -10,10 +9,7 @@ export class User {
|
|||||||
this.id = user.id
|
this.id = user.id
|
||||||
this.gradidoID = user.gradidoID
|
this.gradidoID = user.gradidoID
|
||||||
this.alias = user.alias
|
this.alias = user.alias
|
||||||
this.emailId = user.emailId
|
|
||||||
if (user.emailContact) {
|
if (user.emailContact) {
|
||||||
this.email = user.emailContact.email
|
|
||||||
this.emailContact = new UserContact(user.emailContact)
|
|
||||||
this.emailChecked = user.emailContact.emailChecked
|
this.emailChecked = user.emailContact.emailChecked
|
||||||
}
|
}
|
||||||
this.firstName = user.firstName
|
this.firstName = user.firstName
|
||||||
@ -38,16 +34,6 @@ export class User {
|
|||||||
@Field(() => String, { nullable: true })
|
@Field(() => String, { nullable: true })
|
||||||
alias: string | null
|
alias: string | null
|
||||||
|
|
||||||
@Field(() => Int, { nullable: true })
|
|
||||||
emailId: number | null
|
|
||||||
|
|
||||||
// TODO privacy issue here
|
|
||||||
@Field(() => String, { nullable: true })
|
|
||||||
email: string | null
|
|
||||||
|
|
||||||
@Field(() => UserContact)
|
|
||||||
emailContact: UserContact
|
|
||||||
|
|
||||||
@Field(() => String, { nullable: true })
|
@Field(() => String, { nullable: true })
|
||||||
firstName: string | null
|
firstName: string | null
|
||||||
|
|
||||||
|
|||||||
@ -20,12 +20,15 @@ import {
|
|||||||
login,
|
login,
|
||||||
sendCoins,
|
sendCoins,
|
||||||
} from '@/seeds/graphql/mutations'
|
} from '@/seeds/graphql/mutations'
|
||||||
|
import { transactionsQuery } from '@/seeds/graphql/queries'
|
||||||
import { bobBaumeister } from '@/seeds/users/bob-baumeister'
|
import { bobBaumeister } from '@/seeds/users/bob-baumeister'
|
||||||
import { garrickOllivander } from '@/seeds/users/garrick-ollivander'
|
import { garrickOllivander } from '@/seeds/users/garrick-ollivander'
|
||||||
import { peterLustig } from '@/seeds/users/peter-lustig'
|
import { peterLustig } from '@/seeds/users/peter-lustig'
|
||||||
import { stephenHawking } from '@/seeds/users/stephen-hawking'
|
import { stephenHawking } from '@/seeds/users/stephen-hawking'
|
||||||
|
|
||||||
let mutate: ApolloServerTestClient['mutate'], con: Connection
|
let mutate: ApolloServerTestClient['mutate'], con: Connection
|
||||||
|
let query: ApolloServerTestClient['query']
|
||||||
|
|
||||||
let testEnv: {
|
let testEnv: {
|
||||||
mutate: ApolloServerTestClient['mutate']
|
mutate: ApolloServerTestClient['mutate']
|
||||||
query: ApolloServerTestClient['query']
|
query: ApolloServerTestClient['query']
|
||||||
@ -35,6 +38,7 @@ let testEnv: {
|
|||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
testEnv = await testEnvironment(logger)
|
testEnv = await testEnvironment(logger)
|
||||||
mutate = testEnv.mutate
|
mutate = testEnv.mutate
|
||||||
|
query = testEnv.query
|
||||||
con = testEnv.con
|
con = testEnv.con
|
||||||
await cleanDB()
|
await cleanDB()
|
||||||
})
|
})
|
||||||
@ -442,3 +446,42 @@ describe('send coins', () => {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
describe('transactionList', () => {
|
||||||
|
describe('unauthenticated', () => {
|
||||||
|
it('throws an error', async () => {
|
||||||
|
await expect(query({ query: transactionsQuery })).resolves.toMatchObject({
|
||||||
|
errors: [new GraphQLError('401 Unauthorized')],
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
describe('authenticated', () => {
|
||||||
|
describe('no transactions', () => {
|
||||||
|
beforeAll(async () => {
|
||||||
|
await userFactory(testEnv, bobBaumeister)
|
||||||
|
await mutate({
|
||||||
|
mutation: login,
|
||||||
|
variables: {
|
||||||
|
email: 'bob@baumeister.de',
|
||||||
|
password: 'Aa12345_',
|
||||||
|
},
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
it('has no transactions and balance 0', async () => {
|
||||||
|
await expect(query({ query: transactionsQuery })).resolves.toMatchObject({
|
||||||
|
data: {
|
||||||
|
transactionList: {
|
||||||
|
balance: expect.objectContaining({
|
||||||
|
balance: expect.decimalEqual(0),
|
||||||
|
}),
|
||||||
|
transactions: [],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
errors: undefined,
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|||||||
@ -680,7 +680,6 @@ describe('UserResolver', () => {
|
|||||||
expect.objectContaining({
|
expect.objectContaining({
|
||||||
data: {
|
data: {
|
||||||
login: {
|
login: {
|
||||||
email: 'bibi@bloxberg.de',
|
|
||||||
firstName: 'Bibi',
|
firstName: 'Bibi',
|
||||||
hasElopage: false,
|
hasElopage: false,
|
||||||
id: expect.any(Number),
|
id: expect.any(Number),
|
||||||
@ -953,7 +952,6 @@ describe('UserResolver', () => {
|
|||||||
expect.objectContaining({
|
expect.objectContaining({
|
||||||
data: {
|
data: {
|
||||||
verifyLogin: {
|
verifyLogin: {
|
||||||
email: 'bibi@bloxberg.de',
|
|
||||||
firstName: 'Bibi',
|
firstName: 'Bibi',
|
||||||
lastName: 'Bloxberg',
|
lastName: 'Bloxberg',
|
||||||
language: 'de',
|
language: 'de',
|
||||||
@ -1310,7 +1308,7 @@ describe('UserResolver', () => {
|
|||||||
expect.objectContaining({
|
expect.objectContaining({
|
||||||
data: {
|
data: {
|
||||||
login: expect.objectContaining({
|
login: expect.objectContaining({
|
||||||
email: 'bibi@bloxberg.de',
|
firstName: 'Benjamin',
|
||||||
}),
|
}),
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
@ -1457,7 +1455,6 @@ describe('UserResolver', () => {
|
|||||||
expect.objectContaining({
|
expect.objectContaining({
|
||||||
data: {
|
data: {
|
||||||
login: {
|
login: {
|
||||||
email: 'bibi@bloxberg.de',
|
|
||||||
firstName: 'Bibi',
|
firstName: 'Bibi',
|
||||||
hasElopage: false,
|
hasElopage: false,
|
||||||
id: expect.any(Number),
|
id: expect.any(Number),
|
||||||
|
|||||||
@ -130,7 +130,7 @@ export class UserResolver {
|
|||||||
// Elopage Status & Stored PublisherId
|
// Elopage Status & Stored PublisherId
|
||||||
user.hasElopage = await this.hasElopage(context)
|
user.hasElopage = await this.hasElopage(context)
|
||||||
|
|
||||||
logger.debug(`verifyLogin... successful: ${user.firstName}.${user.lastName}, ${user.email}`)
|
logger.debug(`verifyLogin... successful: ${user.firstName}.${user.lastName}`)
|
||||||
return user
|
return user
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -238,7 +238,6 @@ export class UserResolver {
|
|||||||
const user = new User(communityDbUser)
|
const user = new User(communityDbUser)
|
||||||
user.id = sodium.randombytes_random() % (2048 * 16) // TODO: for a better faking derive id from email so that it will be always the same id when the same email comes in?
|
user.id = sodium.randombytes_random() % (2048 * 16) // TODO: for a better faking derive id from email so that it will be always the same id when the same email comes in?
|
||||||
user.gradidoID = uuidv4()
|
user.gradidoID = uuidv4()
|
||||||
user.email = email
|
|
||||||
user.firstName = firstName
|
user.firstName = firstName
|
||||||
user.lastName = lastName
|
user.lastName = lastName
|
||||||
user.language = language
|
user.language = language
|
||||||
|
|||||||
@ -305,7 +305,6 @@ export const login = gql`
|
|||||||
mutation ($email: String!, $password: String!, $publisherId: Int) {
|
mutation ($email: String!, $password: String!, $publisherId: Int) {
|
||||||
login(email: $email, password: $password, publisherId: $publisherId) {
|
login(email: $email, password: $password, publisherId: $publisherId) {
|
||||||
id
|
id
|
||||||
email
|
|
||||||
firstName
|
firstName
|
||||||
lastName
|
lastName
|
||||||
language
|
language
|
||||||
|
|||||||
@ -3,7 +3,6 @@ import { gql } from 'graphql-tag'
|
|||||||
export const verifyLogin = gql`
|
export const verifyLogin = gql`
|
||||||
query {
|
query {
|
||||||
verifyLogin {
|
verifyLogin {
|
||||||
email
|
|
||||||
firstName
|
firstName
|
||||||
lastName
|
lastName
|
||||||
language
|
language
|
||||||
@ -24,31 +23,26 @@ export const queryOptIn = gql`
|
|||||||
`
|
`
|
||||||
|
|
||||||
export const transactionsQuery = gql`
|
export const transactionsQuery = gql`
|
||||||
query (
|
query ($currentPage: Int = 1, $pageSize: Int = 25, $order: Order = DESC) {
|
||||||
$currentPage: Int = 1
|
transactionList(currentPage: $currentPage, pageSize: $pageSize, order: $order) {
|
||||||
$pageSize: Int = 25
|
balance {
|
||||||
$order: Order = DESC
|
balance
|
||||||
$onlyCreations: Boolean = false
|
balanceGDT
|
||||||
) {
|
count
|
||||||
transactionList(
|
linkCount
|
||||||
currentPage: $currentPage
|
}
|
||||||
pageSize: $pageSize
|
|
||||||
order: $order
|
|
||||||
onlyCreations: $onlyCreations
|
|
||||||
) {
|
|
||||||
balanceGDT
|
|
||||||
count
|
|
||||||
balance
|
|
||||||
transactions {
|
transactions {
|
||||||
id
|
id
|
||||||
typeId
|
typeId
|
||||||
amount
|
amount
|
||||||
balance
|
balance
|
||||||
|
previousBalance
|
||||||
balanceDate
|
balanceDate
|
||||||
memo
|
memo
|
||||||
linkedUser {
|
linkedUser {
|
||||||
firstName
|
firstName
|
||||||
lastName
|
lastName
|
||||||
|
gradidoID
|
||||||
}
|
}
|
||||||
decay {
|
decay {
|
||||||
decay
|
decay
|
||||||
@ -56,6 +50,7 @@ export const transactionsQuery = gql`
|
|||||||
end
|
end
|
||||||
duration
|
duration
|
||||||
}
|
}
|
||||||
|
linkId
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -117,7 +117,7 @@ server {
|
|||||||
|
|
||||||
# TODO this could be a performance optimization
|
# TODO this could be a performance optimization
|
||||||
#location /vue {
|
#location /vue {
|
||||||
# alias /var/www/html/gradido/frontend/dist;
|
# alias /var/www/html/gradido/frontend/build;
|
||||||
# index index.html;
|
# index index.html;
|
||||||
#
|
#
|
||||||
# location ~* \.(png)$ {
|
# location ~* \.(png)$ {
|
||||||
|
|||||||
@ -103,7 +103,7 @@ server {
|
|||||||
|
|
||||||
# TODO this could be a performance optimization
|
# TODO this could be a performance optimization
|
||||||
#location /vue {
|
#location /vue {
|
||||||
# alias /var/www/html/gradido/frontend/dist;
|
# alias /var/www/html/gradido/frontend/build;
|
||||||
# index index.html;
|
# index index.html;
|
||||||
#
|
#
|
||||||
# location ~* \.(png)$ {
|
# location ~* \.(png)$ {
|
||||||
|
|||||||
@ -15,6 +15,6 @@ export NVM_DIR="/root/.nvm"
|
|||||||
$NPM_BIN install
|
$NPM_BIN install
|
||||||
$NPM_BIN run build
|
$NPM_BIN run build
|
||||||
# prezip for faster deliver throw nginx
|
# prezip for faster deliver throw nginx
|
||||||
cd dist
|
cd build
|
||||||
find . -type f -name "*.css" -exec gzip -9 -k {} \;
|
find . -type f -name "*.css" -exec gzip -9 -k {} \;
|
||||||
find . -type f -name "*.js" -exec gzip -9 -k {} \;
|
find . -type f -name "*.js" -exec gzip -9 -k {} \;
|
||||||
|
|||||||
@ -130,6 +130,15 @@ rm -Rf $PROJECT_ROOT/admin/node_modules
|
|||||||
rm -Rf $PROJECT_ROOT/dht-node/node_modules
|
rm -Rf $PROJECT_ROOT/dht-node/node_modules
|
||||||
rm -Rf $PROJECT_ROOT/federation/node_modules
|
rm -Rf $PROJECT_ROOT/federation/node_modules
|
||||||
|
|
||||||
|
# Remove build folders
|
||||||
|
# we had problems with corrupted incremtal builds
|
||||||
|
rm -Rf $PROJECT_ROOT/database/build
|
||||||
|
rm -Rf $PROJECT_ROOT/backend/build
|
||||||
|
rm -Rf $PROJECT_ROOT/frontend/build
|
||||||
|
rm -Rf $PROJECT_ROOT/admin/build
|
||||||
|
rm -Rf $PROJECT_ROOT/dht-node/build
|
||||||
|
rm -Rf $PROJECT_ROOT/federation/build
|
||||||
|
|
||||||
# Regenerate .env files
|
# Regenerate .env files
|
||||||
cp -f $PROJECT_ROOT/database/.env $PROJECT_ROOT/database/.env.bak
|
cp -f $PROJECT_ROOT/database/.env $PROJECT_ROOT/database/.env.bak
|
||||||
cp -f $PROJECT_ROOT/backend/.env $PROJECT_ROOT/backend/.env.bak
|
cp -f $PROJECT_ROOT/backend/.env $PROJECT_ROOT/backend/.env.bak
|
||||||
|
|||||||
@ -58,7 +58,7 @@ export default defineConfig({
|
|||||||
mailserverURL: 'http://localhost:1080',
|
mailserverURL: 'http://localhost:1080',
|
||||||
loginQuery: `mutation ($email: String!, $password: String!, $publisherId: Int) {
|
loginQuery: `mutation ($email: String!, $password: String!, $publisherId: Int) {
|
||||||
login(email: $email, password: $password, publisherId: $publisherId) {
|
login(email: $email, password: $password, publisherId: $publisherId) {
|
||||||
email
|
id
|
||||||
firstName
|
firstName
|
||||||
lastName
|
lastName
|
||||||
language
|
language
|
||||||
|
|||||||
@ -35,6 +35,6 @@ Cypress.Commands.add('login', (email, password) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
cy.visit('/')
|
cy.visit('/')
|
||||||
window.localStorage.setItem('vuex', JSON.stringify(vuexToken))
|
window.localStorage.setItem('gradido-frontend', JSON.stringify(vuexToken))
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|||||||
@ -1,3 +1,3 @@
|
|||||||
node_modules/
|
node_modules/
|
||||||
dist/
|
build/
|
||||||
coverage/
|
coverage/
|
||||||
2
frontend/.gitignore
vendored
2
frontend/.gitignore
vendored
@ -1,6 +1,6 @@
|
|||||||
.DS_Store
|
.DS_Store
|
||||||
node_modules/
|
node_modules/
|
||||||
dist/
|
build/
|
||||||
.cache/
|
.cache/
|
||||||
npm-debug.log*
|
npm-debug.log*
|
||||||
yarn-debug.log*
|
yarn-debug.log*
|
||||||
|
|||||||
@ -84,7 +84,7 @@ CMD /bin/sh -c "yarn run dev"
|
|||||||
FROM base as production
|
FROM base as production
|
||||||
|
|
||||||
# Copy "binary"-files from build image
|
# Copy "binary"-files from build image
|
||||||
COPY --from=build ${DOCKER_WORKDIR}/dist ./dist
|
COPY --from=build ${DOCKER_WORKDIR}/build ./build
|
||||||
# We also copy the node_modules express and serve-static for the run script
|
# We also copy the node_modules express and serve-static for the run script
|
||||||
COPY --from=build ${DOCKER_WORKDIR}/node_modules ./node_modules
|
COPY --from=build ${DOCKER_WORKDIR}/node_modules ./node_modules
|
||||||
# Copy static files
|
# Copy static files
|
||||||
|
|||||||
@ -7,7 +7,7 @@
|
|||||||
"serve": "vue-cli-service serve --open",
|
"serve": "vue-cli-service serve --open",
|
||||||
"build": "vue-cli-service build",
|
"build": "vue-cli-service build",
|
||||||
"dev": "yarn run serve",
|
"dev": "yarn run serve",
|
||||||
"analyse-bundle": "yarn build && webpack-bundle-analyzer dist/webpack.stats.json",
|
"analyse-bundle": "yarn build && webpack-bundle-analyzer build/webpack.stats.json",
|
||||||
"lint": "eslint --max-warnings=0 --ext .js,.vue,.json .",
|
"lint": "eslint --max-warnings=0 --ext .js,.vue,.json .",
|
||||||
"stylelint": "stylelint --max-warnings=0 '**/*.{scss,vue}'",
|
"stylelint": "stylelint --max-warnings=0 '**/*.{scss,vue}'",
|
||||||
"test": "cross-env TZ=UTC jest",
|
"test": "cross-env TZ=UTC jest",
|
||||||
|
|||||||
@ -9,10 +9,10 @@ const port = process.env.PORT || 3000
|
|||||||
// Express Server
|
// Express Server
|
||||||
const app = express()
|
const app = express()
|
||||||
// Serve files
|
// Serve files
|
||||||
app.use(express.static(path.join(__dirname, '../dist')))
|
app.use(express.static(path.join(__dirname, '../build')))
|
||||||
// Default to index.html
|
// Default to index.html
|
||||||
app.get('*', (req, res) => {
|
app.get('*', (req, res) => {
|
||||||
res.sendFile(path.join(__dirname, '../dist/index.html'))
|
res.sendFile(path.join(__dirname, '../build/index.html'))
|
||||||
})
|
})
|
||||||
|
|
||||||
app.listen(port, hostname, () => {
|
app.listen(port, hostname, () => {
|
||||||
|
|||||||
@ -91,6 +91,7 @@ try {
|
|||||||
store = new Vuex.Store({
|
store = new Vuex.Store({
|
||||||
plugins: [
|
plugins: [
|
||||||
createPersistedState({
|
createPersistedState({
|
||||||
|
key: 'gradido-frontend',
|
||||||
storage: window.localStorage,
|
storage: window.localStorage,
|
||||||
}),
|
}),
|
||||||
],
|
],
|
||||||
|
|||||||
@ -64,5 +64,5 @@ module.exports = {
|
|||||||
// Enable CSS source maps.
|
// Enable CSS source maps.
|
||||||
sourceMap: CONFIG.NODE_ENV !== 'production',
|
sourceMap: CONFIG.NODE_ENV !== 'production',
|
||||||
},
|
},
|
||||||
outputDir: path.resolve(__dirname, './dist'),
|
outputDir: path.resolve(__dirname, './build'),
|
||||||
}
|
}
|
||||||
|
|||||||
@ -71,7 +71,7 @@ server {
|
|||||||
|
|
||||||
# TODO this could be a performance optimization
|
# TODO this could be a performance optimization
|
||||||
#location /vue {
|
#location /vue {
|
||||||
# alias /var/www/html/gradido/frontend/dist;
|
# alias /var/www/html/gradido/frontend/build;
|
||||||
# index index.html;
|
# index index.html;
|
||||||
#
|
#
|
||||||
# location ~* \.(png)$ {
|
# location ~* \.(png)$ {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user