diff --git a/packages/core/admin/admin/src/components/PageTitle/index.js b/packages/core/admin/admin/src/components/PageTitle/index.js index 0e44b36d6e..4a8c8cbd7c 100644 --- a/packages/core/admin/admin/src/components/PageTitle/index.js +++ b/packages/core/admin/admin/src/components/PageTitle/index.js @@ -2,7 +2,7 @@ import React, { memo } from 'react'; import { Helmet } from 'react-helmet'; import PropTypes from 'prop-types'; -import favicon from '../../favicon.png'; +import favicon from '../../favicon.ico'; const PageTitle = ({ title }) => { return ; diff --git a/packages/core/admin/admin/src/favicon.ico b/packages/core/admin/admin/src/favicon.ico new file mode 100644 index 0000000000..03eec51b18 Binary files /dev/null and b/packages/core/admin/admin/src/favicon.ico differ diff --git a/packages/core/admin/admin/src/favicon.png b/packages/core/admin/admin/src/favicon.png deleted file mode 100644 index 45aa0b0c84..0000000000 Binary files a/packages/core/admin/admin/src/favicon.png and /dev/null differ diff --git a/packages/core/admin/package.json b/packages/core/admin/package.json index af9715e937..4052cc4d8d 100644 --- a/packages/core/admin/package.json +++ b/packages/core/admin/package.json @@ -7,6 +7,7 @@ "url": "git://github.com/strapi/strapi.git" }, "scripts": { + "prepublishOnly": "node ./scripts/build.js", "test": "echo \"no tests yet\"", "develop": "webpack serve --config webpack.config.dev.js --progress profile", "develop:ce": "STRAPI_DISABLE_EE=true webpack serve --config webpack.config.dev.js --progress profile", diff --git a/packages/core/admin/scripts/build.js b/packages/core/admin/scripts/build.js new file mode 100644 index 0000000000..ed71db647d --- /dev/null +++ b/packages/core/admin/scripts/build.js @@ -0,0 +1,67 @@ +'use strict'; + +const path = require('path'); +const webpack = require('webpack'); +const webpackConfig = require('../webpack.config'); + +const buildAdmin = async () => { + const entry = path.join(__dirname, '..', 'admin', 'src'); + const dest = path.join(__dirname, '..', 'build'); + + const args = { + entry, + dest, + env: 'production', + optimize: true, + options: { + backend: 'http://localhost:1337', + adminPath: '/admin/', + features: [], + }, + useEE: false, + }; + + const compiler = webpack(webpackConfig(args)); + + console.log('Building the admin panel'); + + return new Promise((resolve, reject) => { + compiler.run((err, stats) => { + let messages; + if (err) { + if (!err.message) { + return reject(err); + } + messages = { + errors: [err.message], + warnings: [], + }; + } else { + messages = stats.toJson({ all: false, warnings: true, errors: true }); + } + + if (messages.errors.length) { + // Only keep the first error. Others are often indicative + // of the same problem, but confuse the reader with noise. + if (messages.errors.length > 1) { + messages.errors.length = 1; + } + return reject(new Error(messages.errors.join('\n\n'))); + } + + return resolve({ + stats, + warnings: messages.warnings, + }); + }); + }); +}; + +buildAdmin() + .then(() => { + process.exit(); + }) + .catch(err => { + console.error(err); + process.exit(1); + });