powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / При компиляции в webpack с отложенной загрузкой (System.import) не подгружаются стили ...
1 сообщений из 1, страница 1 из 1
При компиляции в webpack с отложенной загрузкой (System.import) не подгружаются стили ...
    #39490119
Сергей_ТВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите, почему не подгружаются стили и что необходимо сделать?
Совсем простой код. С заглавной странички вызываются либо первая либо вторая страницы. При этом, несмотря на то, что в скомпилированных файлах первой и второй страницы классы присутствуют, по факту они не привязываются к элементам

Код index.html

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="x-ua-compatible" content="ie=edge">
    <title></title>
    <link rel="stylesheet" href="dist/styles.css">

</head>
<body>
    <div id="app"></div>
    <script src="dist/bundle.js"></script>
</body>
</html>




Код index.js

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
var style = require('./style/globalStyle.css');

var app = document.getElementById('app');

app.innerHTML = `
    <div id="menu">
        <button id="loadPage1">First page</button>
        <button id="loadPage2">Second page</button>
    </div>
    <div id="content">
        <h1>Main page</h1>
    </div>
`;

document.getElementById('loadPage1').addEventListener('click', () => {
    System.import('./page1')
        .then(pageModule => {
            document.getElementById('content').innerHTML = pageModule.default;
        })
});

document.getElementById('loadPage2').addEventListener('click', () => {
    System.import('./page2')
        .then(pageModule => {
            document.getElementById('content').innerHTML = pageModule.default;
        })
});

if (DEVELOPMENT) {
    if (module.hot){
        module.hot.accept();
    }
}



Код page1.js

Код: javascript
1.
2.
3.
4.
var style1 = require('./style/css1.css');

const page = `<div class="red">This is the first page</div>`;
export default page;



Код page2.js

Код: javascript
1.
2.
3.
4.
var style2 = require('./style/css2.css');

const page = `<div class="green">This is the second page</div>`;
export default page;



css1

Код: css
1.
2.
3.
4.
5.
.red{
    background-color: red;
    width: 100%;
    height: 100px;
}



css2

Код: css
1.
2.
3.
4.
5.
.green{
    background-color: green;
    width: 100%;
    height: 100px;
}



Код webpack.config

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
var path = require('path');
var webpack = require('webpack');
var ExtractTextPlugin = require('extract-text-webpack-plugin');
var HtmlWebpackPlugin = require('html-webpack-plugin');

var DEVELOPMENT = process.env.NODE_ENV === 'development';
var PRODUCTION = process.env.NODE_ENV === 'production';

var entry = PRODUCTION
    ? [ './src/index.js']
    : [
        './src/index.js',
        'webpack/hot/dev-server',
        'webpack-dev-server/client?http://localhost:8080'
];

var plugins = PRODUCTION
    ? [
        new webpack.optimize.UglifyJsPlugin(),
        new ExtractTextPlugin('style-[contenthash:10].css'),
        new HtmlWebpackPlugin({
            template: 'index-template.html'
        })
      ]
    : [ new webpack.HotModuleReplacementPlugin() ];

plugins.push(
    new webpack.DefinePlugin({
        DEVELOPMENT: JSON.stringify(DEVELOPMENT),
        PRODUCTION: JSON.stringify(PRODUCTION)
    })
);

const cssIdentifier = PRODUCTION ? '[hash:base64:10]' : '[path]{name]---[local]';

const cssLoader = PRODUCTION
    ?   ExtractTextPlugin.extract({
            loader: 'css-loader?localIdentName=' + cssIdentifier
        })
    :   ['style-loader', 'css-loader?localIdentName=[path][name]---[local]']


module.exports = {
    devtool: 'source-map',
    entry: entry,
    plugins: plugins,
    module: {
        loaders: [{
            test: /\.js$/,
            loaders: ['babel-loader'],
            exclude: '/node_modules/'
        } , {
            test: /\.(png|jpg|gif)$/,
            loaders: ['url-loader?limit=10000&name=images/[hash:12].[exit]'],
            exclude: '/node_modules/'
        } , {
            test: /\.css$/,
            loaders:cssLoader,
            exclude: '/node_modules/'
        }]
    },
    output: {
        path:path.join(__dirname, 'dist'),
        publicPath: PRODUCTION ? '/' : '/dist/',
        filename: PRODUCTION ? 'bundle.[hash:12].min.js' : 'bundle.js'
    }
};



Содержимое скомпилированных файлов первой (ниже второй) страницы включают css файлы с классами, но вот по факту что-то происходит (или чего-то нужное не происходит) в результате чего элементам первой и второй страниц их стили не присваиваются

Содержимое первой страницы
Код: javascript
1.
webpackJsonp([1],{4:function(i,e,n){"use strict";var s=(n(6),'<div class="red">This is the first page</div>');e.default=s},6:function(i,e,n){e=i.exports=n(3)(void 0),e.push([i.i,".red{\n    background-color: red;\n    width: 100%;\n    height: 100px;\n}",""])}});



Содержимое второй страницы
Код: javascript
1.
webpackJsonp([0],{5:function(e,n,i){"use strict";var s=(i(7),'<div class="green">This is the second page</div>');n.default=s},7:function(e,n,i){n=e.exports=i(3)(void 0),n.push([e.i,".green{\n    background-color: green;\n    width: 100%;\n    height: 100px;\n}",""])}});
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / При компиляции в webpack с отложенной загрузкой (System.import) не подгружаются стили ...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]