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

Commit

Permalink
feat: use css2json loader by default
Browse files Browse the repository at this point in the history
  • Loading branch information
vakrilov committed Oct 23, 2019
1 parent b93211d commit 6b0c9ae
Show file tree
Hide file tree
Showing 8 changed files with 27 additions and 20 deletions.
17 changes: 12 additions & 5 deletions css2json-loader.js
Original file line number Diff line number Diff line change
@@ -1,15 +1,22 @@
const parse = require("tns-core-modules/css").parse;
const nl = "\n";

module.exports = function (content, map) {
const ast = parse(content);
const dependencies = getImportsFrom(ast)

let dependencies = [];
getImportsFrom(ast)
.map(mapURI)
.reduce((dependencies, { uri, requireURI }) =>
dependencies + `global.registerModule(${uri}, () => require(${requireURI}));${nl}`, "");
.forEach(({ uri, requireURI }) => {
dependencies.push(`global.registerModule(${uri}, () => require(${requireURI}));`);

// call registerModule with requireURI to handle cases like @import "~@nativescript/theme/css/blue.css";
if (uri !== requireURI) {
dependencies.push(`global.registerModule(${requireURI}, () => require(${requireURI}));`);
}
});

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

function getImportsFrom(ast) {
Expand Down
4 changes: 2 additions & 2 deletions demo/AngularApp/webpack.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -226,14 +226,14 @@ module.exports = env => {
test: /[\/|\\]app\.css$/,
use: [
"nativescript-dev-webpack/style-hot-loader",
{ loader: "css-loader", options: { url: false } }
"nativescript-dev-webpack/css2json-loader"
]
},
{
test: /[\/|\\]app\.scss$/,
use: [
"nativescript-dev-webpack/style-hot-loader",
{ loader: "css-loader", options: { url: false } },
"nativescript-dev-webpack/css2json-loader",
"sass-loader"
]
},
Expand Down
4 changes: 2 additions & 2 deletions demo/JavaScriptApp/webpack.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -188,13 +188,13 @@ module.exports = env => {

{
test: /\.css$/,
use: { loader: "css-loader", options: { url: false } }
use: "nativescript-dev-webpack/css2json-loader"
},

{
test: /\.scss$/,
use: [
{ loader: "css-loader", options: { url: false } },
"nativescript-dev-webpack/css2json-loader",
"sass-loader"
]
},
Expand Down
4 changes: 2 additions & 2 deletions demo/TypeScriptApp/webpack.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -194,13 +194,13 @@ module.exports = env => {

{
test: /\.css$/,
use: { loader: "css-loader", options: { url: false } }
use: "nativescript-dev-webpack/css2json-loader"
},

{
test: /\.scss$/,
use: [
{ loader: "css-loader", options: { url: false } },
"nativescript-dev-webpack/css2json-loader",
"sass-loader"
]
},
Expand Down
4 changes: 2 additions & 2 deletions templates/webpack.angular.js
Original file line number Diff line number Diff line change
Expand Up @@ -233,14 +233,14 @@ module.exports = env => {
test: /[\/|\\]app\.css$/,
use: [
"nativescript-dev-webpack/style-hot-loader",
{ loader: "css-loader", options: { url: false } }
"nativescript-dev-webpack/css2json-loader",
]
},
{
test: /[\/|\\]app\.scss$/,
use: [
"nativescript-dev-webpack/style-hot-loader",
{ loader: "css-loader", options: { url: false } },
"nativescript-dev-webpack/css2json-loader",
"sass-loader"
]
},
Expand Down
4 changes: 2 additions & 2 deletions templates/webpack.javascript.js
Original file line number Diff line number Diff line change
Expand Up @@ -195,13 +195,13 @@ module.exports = env => {

{
test: /\.css$/,
use: { loader: "css-loader", options: { url: false } }
use: "nativescript-dev-webpack/css2json-loader"
},

{
test: /\.scss$/,
use: [
{ loader: "css-loader", options: { url: false } },
"nativescript-dev-webpack/css2json-loader",
"sass-loader"
]
},
Expand Down
4 changes: 2 additions & 2 deletions templates/webpack.typescript.js
Original file line number Diff line number Diff line change
Expand Up @@ -202,13 +202,13 @@ module.exports = env => {

{
test: /\.css$/,
use: { loader: "css-loader", options: { url: false } }
use: "nativescript-dev-webpack/css2json-loader"
},

{
test: /\.scss$/,
use: [
{ loader: "css-loader", options: { url: false } },
"nativescript-dev-webpack/css2json-loader",
"sass-loader"
]
},
Expand Down
6 changes: 3 additions & 3 deletions templates/webpack.vue.js
Original file line number Diff line number Diff line change
Expand Up @@ -200,16 +200,16 @@ module.exports = env => {
use: [
'nativescript-dev-webpack/style-hot-loader',
'nativescript-dev-webpack/apply-css-loader.js',
{ loader: "css-loader", options: { url: false } },
'nativescript-dev-webpack/css2json-loader',
],
},
{
test: /\.scss$/,
use: [
'nativescript-dev-webpack/style-hot-loader',
'nativescript-dev-webpack/apply-css-loader.js',
{ loader: "css-loader", options: { url: false } },
"sass-loader",
'nativescript-dev-webpack/css2json-loader',
'sass-loader',
],
},
{
Expand Down

0 comments on commit 6b0c9ae

Please sign in to comment.