Skip to content
This repository was archived by the owner on Aug 7, 2021. It is now read-only.

Commit 6b0c9ae

Browse files
author
vakrilov
committed
feat: use css2json loader by default
1 parent b93211d commit 6b0c9ae

File tree

8 files changed

+27
-20
lines changed

8 files changed

+27
-20
lines changed

Diff for: css2json-loader.js

+12-5
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,22 @@
11
const parse = require("tns-core-modules/css").parse;
2-
const nl = "\n";
32

43
module.exports = function (content, map) {
54
const ast = parse(content);
6-
const dependencies = getImportsFrom(ast)
5+
6+
let dependencies = [];
7+
getImportsFrom(ast)
78
.map(mapURI)
8-
.reduce((dependencies, { uri, requireURI }) =>
9-
dependencies + `global.registerModule(${uri}, () => require(${requireURI}));${nl}`, "");
9+
.forEach(({ uri, requireURI }) => {
10+
dependencies.push(`global.registerModule(${uri}, () => require(${requireURI}));`);
11+
12+
// call registerModule with requireURI to handle cases like @import "~@nativescript/theme/css/blue.css";
13+
if (uri !== requireURI) {
14+
dependencies.push(`global.registerModule(${requireURI}, () => require(${requireURI}));`);
15+
}
16+
});
1017

1118
const str = JSON.stringify(ast, (k, v) => k === "position" ? undefined : v);
12-
this.callback(null, `${dependencies}module.exports = ${str};`, map);
19+
this.callback(null, `${dependencies.join("\n")}module.exports = ${str};`, map);
1320
}
1421

1522
function getImportsFrom(ast) {

Diff for: demo/AngularApp/webpack.config.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -226,14 +226,14 @@ module.exports = env => {
226226
test: /[\/|\\]app\.css$/,
227227
use: [
228228
"nativescript-dev-webpack/style-hot-loader",
229-
{ loader: "css-loader", options: { url: false } }
229+
"nativescript-dev-webpack/css2json-loader"
230230
]
231231
},
232232
{
233233
test: /[\/|\\]app\.scss$/,
234234
use: [
235235
"nativescript-dev-webpack/style-hot-loader",
236-
{ loader: "css-loader", options: { url: false } },
236+
"nativescript-dev-webpack/css2json-loader",
237237
"sass-loader"
238238
]
239239
},

Diff for: demo/JavaScriptApp/webpack.config.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -188,13 +188,13 @@ module.exports = env => {
188188

189189
{
190190
test: /\.css$/,
191-
use: { loader: "css-loader", options: { url: false } }
191+
use: "nativescript-dev-webpack/css2json-loader"
192192
},
193193

194194
{
195195
test: /\.scss$/,
196196
use: [
197-
{ loader: "css-loader", options: { url: false } },
197+
"nativescript-dev-webpack/css2json-loader",
198198
"sass-loader"
199199
]
200200
},

Diff for: demo/TypeScriptApp/webpack.config.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -194,13 +194,13 @@ module.exports = env => {
194194

195195
{
196196
test: /\.css$/,
197-
use: { loader: "css-loader", options: { url: false } }
197+
use: "nativescript-dev-webpack/css2json-loader"
198198
},
199199

200200
{
201201
test: /\.scss$/,
202202
use: [
203-
{ loader: "css-loader", options: { url: false } },
203+
"nativescript-dev-webpack/css2json-loader",
204204
"sass-loader"
205205
]
206206
},

Diff for: templates/webpack.angular.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -233,14 +233,14 @@ module.exports = env => {
233233
test: /[\/|\\]app\.css$/,
234234
use: [
235235
"nativescript-dev-webpack/style-hot-loader",
236-
{ loader: "css-loader", options: { url: false } }
236+
"nativescript-dev-webpack/css2json-loader",
237237
]
238238
},
239239
{
240240
test: /[\/|\\]app\.scss$/,
241241
use: [
242242
"nativescript-dev-webpack/style-hot-loader",
243-
{ loader: "css-loader", options: { url: false } },
243+
"nativescript-dev-webpack/css2json-loader",
244244
"sass-loader"
245245
]
246246
},

Diff for: templates/webpack.javascript.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -195,13 +195,13 @@ module.exports = env => {
195195

196196
{
197197
test: /\.css$/,
198-
use: { loader: "css-loader", options: { url: false } }
198+
use: "nativescript-dev-webpack/css2json-loader"
199199
},
200200

201201
{
202202
test: /\.scss$/,
203203
use: [
204-
{ loader: "css-loader", options: { url: false } },
204+
"nativescript-dev-webpack/css2json-loader",
205205
"sass-loader"
206206
]
207207
},

Diff for: templates/webpack.typescript.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -202,13 +202,13 @@ module.exports = env => {
202202

203203
{
204204
test: /\.css$/,
205-
use: { loader: "css-loader", options: { url: false } }
205+
use: "nativescript-dev-webpack/css2json-loader"
206206
},
207207

208208
{
209209
test: /\.scss$/,
210210
use: [
211-
{ loader: "css-loader", options: { url: false } },
211+
"nativescript-dev-webpack/css2json-loader",
212212
"sass-loader"
213213
]
214214
},

Diff for: templates/webpack.vue.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -200,16 +200,16 @@ module.exports = env => {
200200
use: [
201201
'nativescript-dev-webpack/style-hot-loader',
202202
'nativescript-dev-webpack/apply-css-loader.js',
203-
{ loader: "css-loader", options: { url: false } },
203+
'nativescript-dev-webpack/css2json-loader',
204204
],
205205
},
206206
{
207207
test: /\.scss$/,
208208
use: [
209209
'nativescript-dev-webpack/style-hot-loader',
210210
'nativescript-dev-webpack/apply-css-loader.js',
211-
{ loader: "css-loader", options: { url: false } },
212-
"sass-loader",
211+
'nativescript-dev-webpack/css2json-loader',
212+
'sass-loader',
213213
],
214214
},
215215
{

0 commit comments

Comments
 (0)