а не от куда-то там, то есть при помощи path / __dirname и т.д
вот видишь как ты указал путь
я всё же склоняюсь к тому что проблема в остальном конфиге
const params = {
env: process.env.NODE_ENV || 'development'
};
const path = require('path');
const webpack = require('webpack');
const Dotenv = require('dotenv-webpack');
const plugins = {
miniCssExtractPlugin: require("mini-css-extract-plugin"),
svgLoader: require('svg-sprite-loader/plugin'),
cssOptimize: require('optimize-css-assets-webpack-plugin'),
jsOptimize: require('terser-webpack-plugin')
};
const postCss = {
postCssPresetEnv: require('postcss-preset-env'),
import: require('postcss-import'),
nested: require('postcss-nested'),
cssFor: require('postcss-for'),
simpleVars: require('postcss-simple-vars'),
flexbugs: require("postcss-flexbugs-fixes"),
inputStyle: require("postcss-input-style"),
objectFit: require("postcss-object-fit-images"),
gradientFix: require('postcss-gradient-transparency-fix'),
extend: require('postcss-extend'),
};
module.exports = {
context: path.resolve(__dirname + '/app'),
entry: {
subscription: './app-subscription.js',
critical: './app-crit.js',
main: './app.js',
},
stats: {children: false},
watch: params.env == 'development',
watchOptions: {
aggregateTimeout: 50
},
resolve: {
modules: [
(path.resolve(__dirname)),
(path.resolve(__dirname) + '/vendor'),
(path.resolve(__dirname) + '/node_modules')
],
extensions: ['*', '.js', '.css']
},
resolveLoader: {
modules: [
path.resolve(__dirname),
path.resolve(__dirname) + '/node_modules',
path.resolve(__dirname) + '/node_modules'
]
},
output: {
path: path.resolve(__dirname + '/build'),
publicPath: '/local/client/build/',
filename: '[name].js',
library: 'App'
},
module: {
rules: [
{
test: /\.css$/,
use: [
plugins.miniCssExtractPlugin.loader,
'css-loader',
{
loader: "postcss-loader",
options: {
sourceMap: true,
postcssOptions: {
plugins: () => [
postCss.import(),
postCss.cssFor(),
postCss.simpleVars(),
postCss.postCssPresetEnv(),
postCss.nested(),
postCss.flexbugs(),
postCss.inputStyle(),
postCss.objectFit(),
postCss.gradientFix(),
postCss.extend(),
]
}
},
},
],
},
{
test: /\.js$/,
exclude: /(node_modules|vendor)/,
loader: 'babel-loader',
options: {
cacheDirectory: true,
presets: ['@babel/preset-env']
}
},
{
test: /\.(svg)$/,
use: [
{
loader: 'svg-sprite-loader',
options: {
extract: true,
}
},
'svg-transform-loader',
'svgo-loader'
]
}
]
},
plugins: [
new plugins.miniCssExtractPlugin({
filename: '[name].css'
}),
new plugins.svgLoader(),
new webpack.ProvidePlugin({
Swiper: 'swiper/dist/js/swiper.min.js',
vanillaTextMask: "vanilla-text-mask/dist/vanillaTextMask.js"
}),
new webpack.ProvidePlugin({
$: "jquery",
jQuery: "jquery"
}),
new Dotenv({
path: (path.resolve(__dirname) + '/.env')
}),
]
};
if (params.env == 'production') {
module.exports.plugins.push(
new plugins.jsOptimize()
);
/*module.exports.plugins.push(
new plugins.cssOptimize({
cssProcessor: require('cssnano'),
})
);*/
}
почему у тебя путь начинается с рута
вот туда и копай
ls -la
итого 4
drwx------. 3 root root 18 ноя 1 15:23 ./
dr-xr-x---. 10 root root 4096 ноя 18 18:09 ../
drwx------. 5 root root 97 ноя 1 15:23 fish/
{
loader: 'postcss-loader',
options: { sourceMap: true, config: { path: 'src/js/postcss.config.js' } }
}
почему у тебя тут 2 одинаковых лоадера, убери один из них
module: {
rules: [
{
test: /\.css$/,
use: [
plugins.miniCssExtractPlugin.loader,
'css-loader',
{
loader: "postcss-loader",
options: {
sourceMap: true,
postcssOptions: {
plugins: () => [
postCss.import(),
postCss.cssFor(),
postCss.simpleVars(),
postCss.postCssPresetEnv(),
postCss.nested(),
postCss.flexbugs(),
postCss.inputStyle(),
postCss.objectFit(),
postCss.gradientFix(),
postCss.extend(),
]
}
},
},
],
},
}
.....
У тебя подключено два пакета postcss-nested и postcss-nesting
Во втором не вижу примеров вида &_xxx, только & .xxx, возможно он это и не умеет
но вложенность он разворачивает правильно — по правилам нативного CSS Nesting
const postCss = {
postCssPresetEnv: require('postcss-preset-env'),
import: require('postcss-import'),
nested: require('postcss-nested'),
cssFor: require('postcss-for'),
simpleVars: require('postcss-simple-vars'),
flexbugs: require("postcss-flexbugs-fixes"),
inputStyle: require("postcss-input-style"),
objectFit: require("postcss-object-fit-images"),
gradientFix: require('postcss-gradient-transparency-fix'),
extend: require('postcss-extend'),
postCssNesting: require('postcss-nesting')
};
module: {
rules: [
{
test: /\.css$/,
use: [
plugins.miniCssExtractPlugin.loader,
'css-loader',
'postcss-loader',
{
loader: "postcss-loader",
options: {
sourceMap: true,
postcssOptions: {
plugins: () => [
postCss.postCssNesting(),
postCss.import(),
postCss.cssFor(),
postCss.simpleVars(),
postCss.nested(),
postCss.postCssPresetEnv(),
postCss.flexbugs(),
postCss.inputStyle(),
postCss.objectFit(),
postCss.gradientFix(),
postCss.extend(),
]
}
},
},
],
},
}
для желаемого "разложения" вложенности SASS обычно используют
Ты хочешь честный сертификат на IP, да ещё серый? Серьёзно?
user nginx apache;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;
events {
worker_connections 2048;
multi_accept on;
use epoll;
}
http {
include /etc/nginx/mime.types;
default_type application/force-download;
server_names_hash_bucket_size 128;
# log formats
log_format json escape=json
'{'
'"ru":"$remote_user",'
'"ts":"$time_iso8601",'
'"p":"$host",'
'"rl":$request_length,'
'"rm":"$request_method",'
'"ru":"$request_uri",'
'"st":"$status",'
'"bs":$bytes_sent,'
'"ref":"$http_referer",'
'"ua":"$http_user_agent",'
'"rt":"$request_time",'
'"urt":"$upstream_response_time",'
'"uct":"$upstream_connect_time",'
'"uad":"$upstream_addr",'
'"us":"$upstream_status",'
'"uid":"$cookie_qmb",'
'"sslp":"$ssl_protocol",'
'"sp":"$server_protocol"'
'}';
# backend upstream servers
include conf.d/upstreams.conf;
# common composite and file cache settings
include conf.d/maps-composite_settings.conf;
include conf.d/maps.conf;
# add_header
include conf.d/http-add_header.conf;
# Enable logging
access_log /var/log/nginx/access.log json;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
client_max_body_size 1024m;
client_body_buffer_size 4m;
# Parameters for back-end request proxy
proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_read_timeout 300;
proxy_buffer_size 64k;
proxy_buffers 8 256k;
proxy_busy_buffers_size 256k;
proxy_temp_file_write_size 10m;
types_hash_max_size 4096;
# Assign default error handlers
error_page 500 502 503 504 /500.html;
error_page 404 = /404.html;
# Content compression parameters
gzip on;
gzip_proxied any;
gzip_static on;
gzip_http_version 1.0;
gzip_types application/x-javascript application/javascript text/css;
include sites-available/*.conf;
}
странная какая-то настройка сервера без доступа к этому самому серверу
не нужен никакой модуль пыхи, надо поставить fpm
Веб-сервер запущен должен быть либо на IP 0.0.0.0 - что значит все сетевые адаптеры
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 1417/redis-server 1
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1474/nginx: master
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1084/sshd: /usr/sbi
tcp 0 0 127.0.0.1:8090 0.0.0.0:* LISTEN 1078/httpd
tcp 0 0 127.0.0.1:8895 0.0.0.0:* LISTEN 1474/nginx: master
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1077/cupsd
tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN 9203/sshd: root@pts
tcp6 0 0 :::22 :::* LISTEN 1084/sshd: /usr/sbi
tcp6 0 0 ::1:6010 :::* LISTEN 9203/sshd: root@pts
tcp6 0 0 ::1:631 :::* LISTEN 1077/cupsd
tcp6 0 0 :::3306 :::* LISTEN 1981/mysqld
udp 0 0 127.0.0.1:323 0.0.0.0:* 818/chronyd
udp 0 0 0.0.0.0:5353 0.0.0.0:* 760/avahi-daemon: r
udp 0 0 0.0.0.0:34584 0.0.0.0:* 760/avahi-daemon: r
udp6 0 0 ::1:323 :::* 818/chronyd
udp6 0 0 :::5353 :::* 760/avahi-daemon: r
udp6 0 0 :::56726 :::* 760/avahi-daemon: r
Так же в фаерволле должны быть открыты все требуемые порты
Одновременно?
На каких портах?
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 1417/redis-server 1
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1474/nginx: master
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1084/sshd: /usr/sbi
tcp 0 0 127.0.0.1:8090 0.0.0.0:* LISTEN 1078/httpd
tcp 0 0 127.0.0.1:8895 0.0.0.0:* LISTEN 1474/nginx: master
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1077/cupsd
tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN 9203/sshd: root@pts
tcp6 0 0 :::22 :::* LISTEN 1084/sshd: /usr/sbi
tcp6 0 0 ::1:6010 :::* LISTEN 9203/sshd: root@pts
tcp6 0 0 ::1:631 :::* LISTEN 1077/cupsd
tcp6 0 0 :::3306 :::* LISTEN 1981/mysqld
udp 0 0 127.0.0.1:323 0.0.0.0:* 818/chronyd
udp 0 0 0.0.0.0:5353 0.0.0.0:* 760/avahi-daemon: r
udp 0 0 0.0.0.0:34584 0.0.0.0:* 760/avahi-daemon: r
udp6 0 0 ::1:323 :::* 818/chronyd
udp6 0 0 :::5353 :::* 760/avahi-daemon: r
udp6 0 0 :::56726 :::* 760/avahi-daemon: r
Не настроена ли там переадресация на HTTPS, которого у виртуалки нет?
proxy_redirect ~^(http://[^:]+):\d+(/.+)$ $1$2;
proxy_redirect ~^(https://[^:]+):\d+(/.+)$ $1$2;
Для начала выяснить как настроена сеть у VirtualBox
Возможно мне кажется, но настраивать сайт через VirtualBox - какое-то извращение
Для начала в свойствах сети хоста узнай IP виртуалки
а где ответ на мой вопрос
php-fpm и cgi
Да и апач я бы в фпм запилил, чем мод ставить
Варнинги
ну вот если не стартанёт, то и надо разбираться.
при том что не стартует он именно сейчас
а сайт работал или вы дамп разворачивааете?
Вряд-ли, есть у меня экспериментальный вебпак практически с таким-же конфигом но другим entry, и там сборка собирается
Вот мой package.json:
Попробую, но что-то мне кажется вряд-ли и пакета postcss у меня вообще нет