Asset step & script

This commit is contained in:
marudor 2018-09-10 19:53:19 +02:00 committed by Igor Scheller
parent 8456a3cf6f
commit fc9fb14498
3 changed files with 32 additions and 8 deletions

View File

@ -6,7 +6,10 @@
"author": "marudor <marudor@marudor.de>", "author": "marudor <marudor@marudor.de>",
"license": "MIT", "license": "MIT",
"scripts": { "scripts": {
"build": "NODE_ENV=production webpack", "build": "npm run -s build:clean && NODE_ENV=production run-p build:assets build:webpack",
"build:clean": "rimraf public/assets",
"build:assets": "node scripts/copyAssets.js",
"build:webpack": "webpack",
"build:watch": "webpack --watch" "build:watch": "webpack --watch"
}, },
"dependencies": { "dependencies": {
@ -29,6 +32,9 @@
"imports-loader": "^0.8.0", "imports-loader": "^0.8.0",
"less": "^3.0.2", "less": "^3.0.2",
"less-loader": "^4.0.5", "less-loader": "^4.0.5",
"mkdirp": "^0.5.1",
"npm-run-all": "^4.1.3",
"rimraf": "^2.6.2",
"style-loader": "^0.21.0", "style-loader": "^0.21.0",
"webpack": "^3" "webpack": "^3"
} }

25
scripts/copyAssets.js Normal file
View File

@ -0,0 +1,25 @@
const fs = require("fs");
const path = require("path");
const mkdirp = require("mkdirp");
const baseAssetPath = {
src: path.resolve("resources/assets"),
target: path.resolve("public/assets")
};
const emojiPath = {
src: baseAssetPath.src + "/emojis",
target: baseAssetPath.target + "/emojis"
};
mkdirp.sync(emojiPath.target);
const emojis = fs.readdirSync(emojiPath.src);
emojis.forEach(e => {
fs.copyFile(`${emojiPath.src}/${e}`, `${emojiPath.target}/${e}`, e => {
if (e) {
console.error(e);
}
});
});

View File

@ -23,11 +23,6 @@ for (let i = 0; i < 7; i++) {
themeEntries[`theme${i}`] = `./resources/assets/themes/theme${i}.less`; themeEntries[`theme${i}`] = `./resources/assets/themes/theme${i}.less`;
} }
const emojis = {};
for (let emoji of ['redface', 'wind', 'smile', 'sad', 'lol', 'cry', 'rolleyes', 'evil', 'mad', 'question']){
emojis[`${emoji}`] = `./resources/assets/emojis/${emoji}.gif`;
}
module.exports = { module.exports = {
context: __dirname, context: __dirname,
resolve: { resolve: {
@ -36,7 +31,6 @@ module.exports = {
entry: { entry: {
...themeEntries, ...themeEntries,
vendor: './resources/assets/js/vendor.js', vendor: './resources/assets/js/vendor.js',
...emojis,
}, },
output: { output: {
path: path.resolve('public/assets'), path: path.resolve('public/assets'),
@ -52,7 +46,6 @@ module.exports = {
query: { cacheDirectory: true }, query: { cacheDirectory: true },
}, },
{ test: /\.(eot|ttf|otf|svg|woff2?)(\?.*)?$/, loader: 'file-loader' }, { test: /\.(eot|ttf|otf|svg|woff2?)(\?.*)?$/, loader: 'file-loader' },
{ test: /\.gif$/, loader: 'file-loader?name=emojis/[name].[ext]' },
{ test: /\.json$/, loader: 'json-loader' }, { test: /\.json$/, loader: 'json-loader' },
{ test: /\.css$/, loader: 'style-loader!css-loader' }, { test: /\.css$/, loader: 'style-loader!css-loader' },
{ test: /\.less$/, use: ExtractTextPlugin.extract({ { test: /\.less$/, use: ExtractTextPlugin.extract({