Cześć!
Jakiś czas temu informowałem co się dzieje w moim projekcie pisanym na zaliczeniu jednego przedmiotu. Udało się zrobić zapis do pliku .json, choć jeszcze nie działa porównanie po datach. Sprawdza wielkość folderu, odcztyuje jsona, plus parę pomniejszych ficzerów no i ważniejsze commandBus działą asynchronicznie z asynchroniczną klasą folderControler. Niestety nie napotkałem nic sensownego w node (tzn oprócz porównania bitowego), więc trzeba było przejść na cześć frontendową oraz zaprzegnąć tensorflow oraz próbować zamodelować. Dlatego odpala się serwer Aplikacji oparty o expressie, z którym również jest problem... nie za bardzo chce widzieć folder z statictami albo wskazuje nieznane mi miejsce. Ale te pytanie, nie jest o to, ale ciekawy błąd, bądż moje przewinienie czyli wykorzystanie metody startWebpack w klasie Bundler. A wygląda ona następująco:
const webpack = require('webpack');
const config = require('../config/webpack.config.prod.js');
const path = require('path');
class Bundler {
constructor() {
}
async startWebpack() {
console.log(path.resolve(__dirname, '../client/app.js'));
return new Promise((resolve, reject) => {
webpack(config);
resolve(true);
})
}
}
module.exports = Bundler;
A konfiguracja wygląda tak:
const VueLoaderPlugin = require('vue-loader/lib/plugin');
console.log(path.resolve(__dirname, '../client/app.js'));
var baseConfig = {
mode: 'development',
watch: true,
entry: {
app: path.resolve(__dirname + '../client/app.js')
},
output: {
filename: '..\\src\ApplicationServer\\dist\\app.min.js',
library: '[name]',
libraryTarget: 'umd',
umdNamedDefine: true
},
module: {
rules: [
{
test: /\.js$/,
exclude: /node-modules/,
loader: 'babel-loader',
},
{
test: /\.vue$/,
loader: 'vue-loader'
}
]
},
plugins: [
new VueLoaderPlugin()
]
}
module.exports = baseConfig;
Wymyśliłem sobie, że jak już mam odpalać po stronie frontu aplikację to trochę się pobawie w Vue.
Ścieżka do folderu z serwerem aplikacji
Jak zauważycie ścieżki są poprawne, ale z jakiegoś powodu webpack tego nie widzi. Jeżeli nie uda mi się, tego rozwiązać zostanie mi pisanie w template albo zrobienie kolejnego projektu stworzyć tam kod i po prostu go skopiować, a tego bym nie chciał robić. Więc, jeżeli ktoś ma jakąś wskazówkę dlaczego tak się dzieje, chętnie wysłucham.
Ścieżka do foleru z aplikacją: MirAI/src/ApplicationServer/
Link do repo:https://github.com/PatrykMaternicki/MirAI
Jakby ktoś patrzał na to z innej daty niż dziś, należy ją ręcznie zmienić w file w nazwie pliku json. DbManager sprawdza tylko, czy plik istnieje ale nie sprawdza daty pliku.
PS: Prawdopodobnie trzeba będzie sobie nodemon zainstalować ręcznie, ale tutaj pewny nie jestem
PS2: Ciekawostka, webpack przyjmuje 2 argumenty konfiguracje oraz callback, gdy w callbacku zrobimy resolve naszego promise, nodemon ją restartuje, nie wiem za bardzo dlaczego?