teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

index.pug内のクラス名の記載誤りを修正しました。

2019/05/05 03:13

投稿

kitsutsuki55
kitsutsuki55

スコア11

title CHANGED
File without changes
body CHANGED
@@ -60,14 +60,14 @@
60
60
  //- CSSを読み込むためのJavascriptファイル
61
61
  script(src='index.js')
62
62
  body
63
- ._container
63
+ .container
64
64
  header ヘッダー
65
65
  aside サイドバー
66
66
  main メインコンテン
67
67
  footer フッター
68
- ._container2
68
+ .container2
69
- ._hidari_ce634
69
+ .hidari
70
- ._migi_ce634
70
+ .migi
71
71
  ```
72
72
 
73
73
  **style.scss**

1

各ファイルのコードを追記しました。

2019/05/05 03:13

投稿

kitsutsuki55
kitsutsuki55

スコア11

title CHANGED
File without changes
body CHANGED
@@ -1,5 +1,6 @@
1
1
  初めてParcelでの環境構築を試みていますが、躓いてしまいました。
2
2
 
3
+ ### 前提
3
4
  プロジェクトディレクトリ直下のstyle.scssとindex.pugをParcel環境でコンパイルした際、以下のようにdistディレクトリが作成され、中にindex.htmlとcssファイル等が出来ます。
4
5
  (プロジェクト名は仮にprojectとしています。)
5
6
 
@@ -23,6 +24,7 @@
23
24
  **project.e31bb0bc.css★**
24
25
  が適応されるようでした。
25
26
 
27
+ ### 問題点
26
28
  ここまではなんとか理解出来たのですが、問題はproject.e31bb0bc.css内のdivコンテナのclass名が以下のように変わってしまっている点です。
27
29
 
28
30
  > 元のclass名(style.scss)
@@ -33,10 +35,192 @@
33
35
 
34
36
  対し、pugのコンパイルで生成されたdist/index.htmlは元のclass名のままなので、ローカルホストでのブラウザ確認の際はcssが全く反映されていません。
35
37
 
38
+ ### やってみた策
36
39
  試しに人力でproject.e31bb0bc.cssのclass名を元に戻す/逆にindex.htmlのclass名をcssに合わせると反映されました。
37
40
  ですがこれは現実的な解決方法では無いです。。index.pugやstyle.scssを更新保存すれば人力の変更部分は普通に元に戻ってしまうので。。。
38
41
 
39
42
  「parcel class名 変わる」等で検索しても全くヒットしなかったので、質問させていただいた次第です。
40
43
 
41
44
  どなたか解決方法をご存知無いでしょうか?
42
- よろしくお願いします。
45
+ よろしくお願いします。
46
+
47
+ ### 各ファイルの中身
48
+
49
+ ※プロジェクト名(ディレクトリ名)は test-p です。
50
+
51
+ **index.pug**
52
+ ```pug
53
+ <!DOCTYPE html>
54
+ html(lang="ja")
55
+ head
56
+ meta(charset="UTF-8")
57
+ meta(name="viewport", content="width=device-width, initial-scale=1.0")
58
+ meta(http-equiv="X-UA-Compatible", content="ie=edge")
59
+ title Document
60
+ //- CSSを読み込むためのJavascriptファイル
61
+ script(src='index.js')
62
+ body
63
+ ._container
64
+ header ヘッダー
65
+ aside サイドバー
66
+ main メインコンテン
67
+ footer フッター
68
+ ._container2
69
+ ._hidari_ce634 左
70
+ ._migi_ce634 右
71
+ ```
72
+
73
+ **style.scss**
74
+ ```scss
75
+ .container {
76
+ display: grid;
77
+ gap: 10px;
78
+ grid-template: "header header" 50px "aside main" 1fr "aside footer" 50px / 200px 1fr;
79
+ header {
80
+ grid-area: header;
81
+ background-color: aqua;
82
+ }
83
+ aside {
84
+ grid-area: aside;
85
+ background-color: aqua;
86
+ }
87
+ main {
88
+ grid-area: main;
89
+ background-color: aqua;
90
+ }
91
+ footer {
92
+ grid-area: footer;
93
+ background-color: aqua;
94
+ }
95
+ }
96
+
97
+ .container2 {
98
+ display: grid;
99
+ gap: 10px;
100
+ grid-template: "hidari migi" 50px / 100px 1fr;
101
+ .hidari {
102
+ grid-area: hidari;
103
+ background-color: aqua;
104
+ }
105
+ .migi {
106
+ grid-area: migi;
107
+ background-color: #ddd;
108
+ }
109
+ }
110
+ ```
111
+
112
+ **index.js**
113
+ ```js
114
+ import "./style.scss";
115
+ ```
116
+
117
+ **package.json**
118
+ ```json
119
+ {
120
+ "name": "project",
121
+ "version": "1.0.0",
122
+ "description": "",
123
+ "main": "index.js",
124
+ "scripts": {
125
+ "test": "echo \"Error: no test specified\" && exit 1",
126
+ "start": "parcel index.pug"
127
+ },
128
+ "keywords": [],
129
+ "author": "",
130
+ "license": "ISC",
131
+ "devDependencies": {
132
+ "autoprefixer": "^9.5.1",
133
+ "node-sass": "^4.12.0",
134
+ "parcel": "^1.12.3",
135
+ "parcel-bundler": "^1.12.3",
136
+ "postcss-modules": "^1.4.1",
137
+ "pug": "^2.0.3"
138
+ }
139
+ }
140
+ ```
141
+
142
+ ↓コンパイル後
143
+
144
+ **index.html**
145
+ ```html
146
+ <!DOCTYPE html>
147
+ <html lang="ja">
148
+
149
+ <head>
150
+ <meta charset="UTF-8">
151
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
152
+ <meta http-equiv="X-UA-Compatible" content="ie=edge">
153
+ <title>Document</title>
154
+ <script src="/test-p.e31bb0bc.js"></script>
155
+ <link rel="stylesheet" href="/test-p.e31bb0bc.css">
156
+ </head>
157
+
158
+ <body>
159
+ <div class="_container_ce634">
160
+ <header>ヘッダー</header>
161
+ <aside>サイドバー</aside>
162
+ <main>メインコンテン</main>
163
+ <footer>フッター</footer>
164
+ </div>
165
+ <div class="_container2_ce634">
166
+ <div class="_hidari_ce634">左</div>
167
+ <div class="_migi_ce634">右右</div>
168
+ </div>
169
+ </body>
170
+
171
+ </html>
172
+ ```
173
+
174
+ **test-p.e31bb0bc.css**
175
+ ```css
176
+ ._container_ce634 {
177
+ display: -ms-grid;
178
+ display: grid;
179
+ gap: 10px;
180
+ -ms-grid-rows: 50px 10px 1fr 10px 50px;
181
+ -ms-grid-columns: 200px 10px 1fr;
182
+ grid-template: "header header" 50px "aside main" 1fr "aside footer" 50px / 200px 1fr; }
183
+ ._container_ce634 header {
184
+ -ms-grid-row: 1;
185
+ -ms-grid-column: 1;
186
+ -ms-grid-column-span: 3;
187
+ grid-area: header;
188
+ background-color: aqua; }
189
+ ._container_ce634 aside {
190
+ -ms-grid-row: 3;
191
+ -ms-grid-row-span: 3;
192
+ -ms-grid-column: 1;
193
+ grid-area: aside;
194
+ background-color: aqua; }
195
+ ._container_ce634 main {
196
+ -ms-grid-row: 3;
197
+ -ms-grid-column: 3;
198
+ grid-area: main;
199
+ background-color: aqua; }
200
+ ._container_ce634 footer {
201
+ -ms-grid-row: 5;
202
+ -ms-grid-column: 3;
203
+ grid-area: footer;
204
+ background-color: aqua; }
205
+
206
+ ._container2_ce634 {
207
+ display: -ms-grid;
208
+ display: grid;
209
+ gap: 10px;
210
+ -ms-grid-rows: 50px;
211
+ -ms-grid-columns: 100px 10px 1fr;
212
+ grid-template: "hidari migi" 50px / 100px 1fr; }
213
+ ._container2_ce634 ._hidari_ce634 {
214
+ -ms-grid-row: 1;
215
+ -ms-grid-column: 1;
216
+ grid-area: hidari;
217
+ background-color: aqua; }
218
+ ._container2_ce634 ._migi_ce634 {
219
+ -ms-grid-row: 1;
220
+ -ms-grid-column: 3;
221
+ grid-area: migi;
222
+ background-color: #ddd; }
223
+
224
+
225
+ /*# sourceMappingURL=/test-p.e31bb0bc.css.map */
226
+ ```