@rspack/plugin-less
Advanced tools
# @rspack/plugin-less | ||
## 0.0.0-1bce45e7c0-20221109113710 | ||
## 0.0.0-28c9a9ca7c-20221122072855 | ||
### Patch Changes | ||
- Updated dependencies [e6d0926a29] | ||
- @rspack/core@0.0.0-1bce45e7c0-20221109113710 | ||
- Updated dependencies [2eca9adeda] | ||
- @rspack/core@0.0.0-28c9a9ca7c-20221122072855 | ||
## 0.0.10 | ||
### Patch Changes | ||
- Updated dependencies [062e692d] | ||
- @rspack/core@0.0.10 | ||
## 0.0.9 | ||
### Patch Changes | ||
- @rspack/core@0.0.9 | ||
## 0.0.8 | ||
### Patch Changes | ||
- 589b99bb: bump to 0.0.8 | ||
- Updated dependencies [589b99bb] | ||
- @rspack/core@0.0.8 | ||
## 0.0.6 | ||
### Patch Changes | ||
- Updated dependencies [e6d0926a] | ||
- @rspack/core@0.0.6 |
@@ -30,6 +30,13 @@ "use strict"; | ||
const path_1 = __importDefault(require("path")); | ||
const enhanced_resolve_1 = require("enhanced-resolve"); | ||
const alias_plugin_1 = __importDefault(require("./alias-plugin")); | ||
const utils_1 = require("./utils"); | ||
const MODULE_REQUEST_REGEX = /^[^?]*~/; | ||
async function lessLoader(loaderContext) { | ||
var _a, _b; | ||
let meta = ""; | ||
const enhancedResolver = enhanced_resolve_1.create.sync({ | ||
extensions: [".less", ".css", ".sass", ".scss", ".js"], | ||
preferRelative: true | ||
}); | ||
const options = (_a = loaderContext.getOptions()) !== null && _a !== void 0 ? _a : {}; | ||
@@ -53,2 +60,16 @@ const lessOptions = (_b = options.lessOptions) !== null && _b !== void 0 ? _b : {}; | ||
} | ||
const resolver = (id, dir) => { | ||
let request = id; | ||
// convert '~a/b/c' to 'a/b/c' | ||
// from https://github.com/webpack-contrib/less-loader/blob/master/src/utils.js#L73 | ||
if (MODULE_REQUEST_REGEX.test(id)) { | ||
request = request.replace(MODULE_REQUEST_REGEX, ""); | ||
} | ||
try { | ||
return enhancedResolver(dir, request); | ||
} | ||
catch (err) { | ||
throw err; | ||
} | ||
}; | ||
const final_options = { | ||
@@ -61,3 +82,10 @@ filename: loaderContext.resourcePath, | ||
], | ||
plugins: [], | ||
plugins: [ | ||
new alias_plugin_1.default({ | ||
config: { | ||
resolve: resolver | ||
}, | ||
stdinDir: path_1.default.dirname(loaderContext.resourcePath) | ||
}) | ||
], | ||
relativeUrls: true | ||
@@ -64,0 +92,0 @@ }; |
{ | ||
"name": "@rspack/plugin-less", | ||
"version": "0.0.0-1bce45e7c0-20221109113710", | ||
"version": "0.0.0-28c9a9ca7c-20221122072855", | ||
"description": "less plugin for rspack", | ||
@@ -14,5 +14,5 @@ "author": "wangzhenzhuo", | ||
"devDependencies": { | ||
"@rspack/core": "0.0.0-1bce45e7c0-20221109113710", | ||
"@types/jest": "^27.0.1", | ||
"@types/less": "^3.0.3" | ||
"@types/less": "^3.0.3", | ||
"@rspack/core": "0.0.0-28c9a9ca7c-20221122072855" | ||
}, | ||
@@ -22,10 +22,12 @@ "dependencies": { | ||
"less": "4.1.2", | ||
"tslib": "^2.3.1" | ||
"tslib": "^2.3.1", | ||
"enhanced-resolve": "5.10.0" | ||
}, | ||
"peerDependencies": { | ||
"@rspack/core": "0.0.0-1bce45e7c0-20221109113710" | ||
"@rspack/core": "0.0.0-28c9a9ca7c-20221122072855" | ||
}, | ||
"scripts": { | ||
"build": "tsc" | ||
"build": "rm -rf lib/ && tsc", | ||
"dev": "tsc -w" | ||
} | ||
} |
import type { LoaderContext } from "@rspack/core"; | ||
import path from "path"; | ||
import { create } from "enhanced-resolve"; | ||
import LessAliasesPlugin from "./alias-plugin"; | ||
import { normalizeSourceMap } from "./utils"; | ||
const MODULE_REQUEST_REGEX = /^[^?]*~/; | ||
export interface Options { | ||
@@ -17,2 +19,6 @@ implementation?: string; | ||
let meta = ""; | ||
const enhancedResolver = create.sync({ | ||
extensions: [".less", ".css", ".sass", ".scss", ".js"], | ||
preferRelative: true | ||
}); | ||
const options: Options = loaderContext.getOptions() ?? {}; | ||
@@ -39,3 +45,15 @@ const lessOptions = options.lessOptions ?? {}; | ||
} | ||
const resolver = (id, dir): string => { | ||
let request = id; | ||
// convert '~a/b/c' to 'a/b/c' | ||
// from https://github.com/webpack-contrib/less-loader/blob/master/src/utils.js#L73 | ||
if (MODULE_REQUEST_REGEX.test(id)) { | ||
request = request.replace(MODULE_REQUEST_REGEX, ""); | ||
} | ||
try { | ||
return enhancedResolver(dir, request) as string; | ||
} catch (err) { | ||
throw err; | ||
} | ||
}; | ||
const final_options = { | ||
@@ -48,3 +66,10 @@ filename: loaderContext.resourcePath, | ||
], | ||
plugins: [], | ||
plugins: [ | ||
new LessAliasesPlugin({ | ||
config: { | ||
resolve: resolver | ||
}, | ||
stdinDir: path.dirname(loaderContext.resourcePath) | ||
}) | ||
], | ||
relativeUrls: true | ||
@@ -51,0 +76,0 @@ }; |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
27359
181.33%15
66.67%744
210%5
25%4
100%1
Infinity%