@tarojs/rn-style-transformer 3.3.9 → 3.3.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/__tests__/index.spec.js +11 -0
- package/dist/transforms/sass.js +1 -1
- package/dist/transforms/sass.js.map +1 -1
- package/dist/utils/index.js +24 -3
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/lessImport.js +15 -18
- package/dist/utils/lessImport.js.map +1 -1
- package/package.json +7 -7
- package/src/transforms/sass.ts +1 -1
- package/src/utils/index.ts +23 -3
- package/src/utils/lessImport.ts +23 -24
package/__tests__/index.spec.js
CHANGED
|
@@ -181,6 +181,17 @@ describe('style transform', () => {
|
|
|
181
181
|
}`))
|
|
182
182
|
})
|
|
183
183
|
|
|
184
|
+
it('.less tranform node_modules file import', async () => {
|
|
185
|
+
const css = await run(`
|
|
186
|
+
@import 'less/test/browser/css/global-vars/simple.css';
|
|
187
|
+
`, './__tests__/styles/a.less')
|
|
188
|
+
expect(css).toEqual(getWrapedCSS(`{
|
|
189
|
+
"test": {
|
|
190
|
+
"color": "red"
|
|
191
|
+
}
|
|
192
|
+
}`))
|
|
193
|
+
})
|
|
194
|
+
|
|
184
195
|
it('.less import source omit extension', async () => {
|
|
185
196
|
const css = await run(`
|
|
186
197
|
@import './b';
|
package/dist/transforms/sass.js
CHANGED
|
@@ -17,7 +17,7 @@ function makeURL(resource, rootDir) {
|
|
|
17
17
|
function makeImportStatement(filePath, resource, rootDir) {
|
|
18
18
|
const url = makeURL(resource, rootDir);
|
|
19
19
|
const relativePath = path_1.default.relative(filePath, url).replace(/\\/g, '/'); // fix window path error
|
|
20
|
-
return `@import '
|
|
20
|
+
return `@import './${relativePath}'`;
|
|
21
21
|
}
|
|
22
22
|
function getGlobalResource(filename, config) {
|
|
23
23
|
var _a;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sass.js","sourceRoot":"","sources":["../../src/transforms/sass.ts"],"names":[],"mappings":";;;;;AAAA,4CAAmB;AACnB,gDAAuB;AACvB,gDAAoC;AACpC,oCAAqF;AAiBrF,SAAS,OAAO,CAAE,QAAgB,EAAE,OAAe;IACjD,MAAM,GAAG,GAAG,cAAI,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IAC3C,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;QACvB,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAA;KAC5C;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,SAAS,mBAAmB,CAAE,QAAgB,EAAE,QAAgB,EAAE,OAAe;IAC/E,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IACtC,MAAM,YAAY,GAAG,cAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA,CAAC,wBAAwB;IAC9F,OAAO,
|
|
1
|
+
{"version":3,"file":"sass.js","sourceRoot":"","sources":["../../src/transforms/sass.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/index.js
CHANGED
|
@@ -7,6 +7,8 @@ exports.getAdditionalData = exports.normalizeSourceMap = exports.normalizePath =
|
|
|
7
7
|
const fs_1 = __importDefault(require("fs"));
|
|
8
8
|
const path_1 = __importDefault(require("path"));
|
|
9
9
|
const helper_1 = require("@tarojs/helper");
|
|
10
|
+
const resolve_1 = __importDefault(require("resolve"));
|
|
11
|
+
const node_modules_paths_1 = __importDefault(require("resolve/lib/node-modules-paths"));
|
|
10
12
|
function insertBefore(source, additional) {
|
|
11
13
|
if (!source && !additional) {
|
|
12
14
|
return '';
|
|
@@ -56,6 +58,7 @@ exports.findVariant = findVariant;
|
|
|
56
58
|
*/
|
|
57
59
|
function resolveStyle(id, opts) {
|
|
58
60
|
const { basedir, platform, paths = [], alias = {}, defaultExt = '', logLevel = "error" /* ERROR */ } = opts;
|
|
61
|
+
id = id.trim();
|
|
59
62
|
Object.keys(alias).forEach(key => {
|
|
60
63
|
if (id.startsWith(key)) {
|
|
61
64
|
id = id.replace(key, alias[key]);
|
|
@@ -64,18 +67,36 @@ function resolveStyle(id, opts) {
|
|
|
64
67
|
const { dir, name, ext: idExt } = path_1.default.parse(id);
|
|
65
68
|
const incPaths = [path_1.default.resolve(basedir, dir)].concat(paths);
|
|
66
69
|
const ext = idExt || defaultExt;
|
|
67
|
-
const
|
|
70
|
+
const extensions = [
|
|
68
71
|
// add the platform specific extension, first in the array to take precedence
|
|
69
72
|
platform === 'android' ? '.android' + ext : '.ios' + ext,
|
|
70
73
|
'.rn' + ext,
|
|
71
74
|
ext
|
|
72
75
|
];
|
|
73
|
-
|
|
76
|
+
let file;
|
|
77
|
+
let isNodeModulesPath = false;
|
|
78
|
+
try {
|
|
79
|
+
if ((/^(?:\.\.?(?:\/|$)|\/|([A-Za-z]:)?[/\\])/).test(id)) {
|
|
80
|
+
file = findVariant(name, extensions, incPaths);
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
// lookup node_modules file
|
|
84
|
+
isNodeModulesPath = true;
|
|
85
|
+
// like `@import 'taro-ui/dist/base.css';` or `@import '~taro-ui/dist/base.css';`
|
|
86
|
+
file = resolve_1.default.sync(path_1.default.join(dir, name).replace(/^~/, ''), { basedir, extensions });
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
catch (error) {
|
|
90
|
+
}
|
|
74
91
|
if (!file) {
|
|
92
|
+
let includePaths = incPaths;
|
|
93
|
+
if (isNodeModulesPath) {
|
|
94
|
+
includePaths = node_modules_paths_1.default(basedir, { extensions }, id);
|
|
95
|
+
}
|
|
75
96
|
const levelMessage = `
|
|
76
97
|
样式文件没有找到,请检查文件路径: ${id}
|
|
77
98
|
在 [
|
|
78
|
-
${
|
|
99
|
+
${includePaths.join(',\n ')}
|
|
79
100
|
]
|
|
80
101
|
`;
|
|
81
102
|
if (logLevel === "error" /* ERROR */) {
|
package/dist/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAmB;AACnB,gDAAuB;AACvB,2CAA0D;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/lessImport.js
CHANGED
|
@@ -3,39 +3,36 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const
|
|
6
|
+
const less_1 = __importDefault(require("less"));
|
|
7
7
|
const index_1 = require("./index");
|
|
8
|
-
class Importer {
|
|
8
|
+
class Importer extends less_1.default.FileManager {
|
|
9
9
|
constructor(opt) {
|
|
10
|
+
super();
|
|
10
11
|
this.alias = {};
|
|
11
12
|
this.platform = opt.platform;
|
|
12
13
|
this.alias = opt.alias;
|
|
13
14
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
15
|
+
supports() {
|
|
16
|
+
return true;
|
|
17
|
+
}
|
|
18
|
+
supportsSync() {
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
async loadFile(filename, currentDirectory, options, environment) {
|
|
20
22
|
const resolveOpts = {
|
|
21
|
-
basedir,
|
|
23
|
+
basedir: currentDirectory,
|
|
22
24
|
alias: this.alias,
|
|
23
25
|
platform: this.platform,
|
|
24
|
-
|
|
25
|
-
defaultExt: path_1.default.extname(filename)
|
|
26
|
+
defaultExt: '.less'
|
|
26
27
|
};
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
const relativePath = path_1.default.relative(basedir, index_1.resolveStyle(id.trim(), resolveOpts)).replace(/\\/g, '/');
|
|
30
|
-
return `@import '${relativePath}';`;
|
|
31
|
-
});
|
|
32
|
-
return src;
|
|
28
|
+
const rewriteFilename = index_1.resolveStyle(filename, resolveOpts);
|
|
29
|
+
return super.loadFile(rewriteFilename, currentDirectory, options, environment);
|
|
33
30
|
}
|
|
34
31
|
}
|
|
35
32
|
function makeLessImport(options) {
|
|
36
33
|
return {
|
|
37
34
|
install: (_, pluginManager) => {
|
|
38
|
-
pluginManager.
|
|
35
|
+
pluginManager.addFileManager(new Importer(options));
|
|
39
36
|
},
|
|
40
37
|
minVersion: [2, 7, 1]
|
|
41
38
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lessImport.js","sourceRoot":"","sources":["../../src/utils/lessImport.ts"],"names":[],"mappings":";;;;;AAAA,gDAAuB;AACvB,mCAAsC;
|
|
1
|
+
{"version":3,"file":"lessImport.js","sourceRoot":"","sources":["../../src/utils/lessImport.ts"],"names":[],"mappings":";;;;;AAAA,gDAAuB;AACvB,mCAAsC;AAEtC,MAAM,QAAS,SAAQ,cAAI,CAAC,WAAW;IAIrC,YAAa,GAAG;QACd,KAAK,EAAE,CAAA;QAHT,UAAK,GAA2B,EAAE,CAAA;QAIhC,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAA;QAC5B,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAA;IACxB,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAA;IACb,CAAC;IAED,YAAY;QACV,OAAO,KAAK,CAAA;IACd,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,QAAgB,EAChB,gBAAwB,EACxB,OAAY,EACZ,WAAgB;QAEhB,MAAM,WAAW,GAAG;YAClB,OAAO,EAAE,gBAAgB;YACzB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,UAAU,EAAE,OAAO;SACpB,CAAA;QACD,MAAM,eAAe,GAAG,oBAAY,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;QAE3D,OAAO,KAAK,CAAC,QAAQ,CAAC,eAAe,EAAE,gBAAgB,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;IAChF,CAAC;CACF;AAED,SAAS,cAAc,CAAE,OAAO;IAC9B,OAAO;QACL,OAAO,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,EAAE;YAC5B,aAAa,CAAC,cAAc,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAA;QACrD,CAAC;QACD,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;KACtB,CAAA;AACH,CAAC;AAED,kBAAe,cAAc,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tarojs/rn-style-transformer",
|
|
3
|
-
"version": "3.3.
|
|
3
|
+
"version": "3.3.10",
|
|
4
4
|
"description": "提供Taro RN 统一处理样式文件能力",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -23,25 +23,25 @@
|
|
|
23
23
|
"npm": ">=6.0.0"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@tarojs/helper": "3.3.
|
|
26
|
+
"@tarojs/helper": "3.3.10",
|
|
27
27
|
"fbjs": "^2.0.0",
|
|
28
28
|
"less": "^3.12.2",
|
|
29
29
|
"postcss": "^7.0.35",
|
|
30
30
|
"postcss-import": "^12.0.1",
|
|
31
|
-
"postcss-pxtransform": "3.3.
|
|
31
|
+
"postcss-pxtransform": "3.3.10",
|
|
32
32
|
"postcss-reporter": "^6.0.1",
|
|
33
33
|
"prop-types": "^15.7.2",
|
|
34
34
|
"sass": "^1.34.1",
|
|
35
35
|
"stylelint": "^13.8.0",
|
|
36
|
-
"stylelint-config-taro-rn": "3.3.
|
|
37
|
-
"stylelint-taro-rn": "3.3.
|
|
36
|
+
"stylelint-config-taro-rn": "3.3.10",
|
|
37
|
+
"stylelint-taro-rn": "3.3.10",
|
|
38
38
|
"stylus": "^0.54.8",
|
|
39
|
-
"taro-css-to-react-native": "3.3.
|
|
39
|
+
"taro-css-to-react-native": "3.3.10"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
42
|
"@types/less": "^3.0.2",
|
|
43
43
|
"@types/postcss-import": "^12.0.0",
|
|
44
44
|
"@types/sass": "^1.16.1"
|
|
45
45
|
},
|
|
46
|
-
"gitHead": "
|
|
46
|
+
"gitHead": "2eae6e5dbef3f5f12a64ed52875901550ac21924"
|
|
47
47
|
}
|
package/src/transforms/sass.ts
CHANGED
|
@@ -29,7 +29,7 @@ function makeURL (resource: string, rootDir: string) {
|
|
|
29
29
|
function makeImportStatement (filePath: string, resource: string, rootDir: string) {
|
|
30
30
|
const url = makeURL(resource, rootDir)
|
|
31
31
|
const relativePath = path.relative(filePath, url).replace(/\\/g, '/') // fix window path error
|
|
32
|
-
return `@import '
|
|
32
|
+
return `@import './${relativePath}'`
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
function getGlobalResource (filename: string, config: SassGlobalConfig) {
|
package/src/utils/index.ts
CHANGED
|
@@ -2,6 +2,8 @@ import fs from 'fs'
|
|
|
2
2
|
import path from 'path'
|
|
3
3
|
import { printLog, processTypeEnum } from '@tarojs/helper'
|
|
4
4
|
import { ResolveStyleOptions, LogLevelEnum } from '../types'
|
|
5
|
+
import resolve from 'resolve'
|
|
6
|
+
import nodeModulesPaths from 'resolve/lib/node-modules-paths'
|
|
5
7
|
|
|
6
8
|
export function insertBefore (source: string, additional: string) {
|
|
7
9
|
if (!source && !additional) {
|
|
@@ -62,6 +64,7 @@ export function resolveStyle (id: string, opts: ResolveStyleOptions) {
|
|
|
62
64
|
defaultExt = '',
|
|
63
65
|
logLevel = LogLevelEnum.ERROR
|
|
64
66
|
} = opts
|
|
67
|
+
id = id.trim()
|
|
65
68
|
Object.keys(alias).forEach(key => {
|
|
66
69
|
if (id.startsWith(key)) {
|
|
67
70
|
id = id.replace(key, alias[key])
|
|
@@ -72,19 +75,36 @@ export function resolveStyle (id: string, opts: ResolveStyleOptions) {
|
|
|
72
75
|
const incPaths = [path.resolve(basedir, dir)].concat(paths)
|
|
73
76
|
const ext = idExt || defaultExt
|
|
74
77
|
|
|
75
|
-
const
|
|
78
|
+
const extensions = [
|
|
76
79
|
// add the platform specific extension, first in the array to take precedence
|
|
77
80
|
platform === 'android' ? '.android' + ext : '.ios' + ext,
|
|
78
81
|
'.rn' + ext,
|
|
79
82
|
ext
|
|
80
83
|
]
|
|
81
84
|
|
|
82
|
-
|
|
85
|
+
let file: string
|
|
86
|
+
let isNodeModulesPath = false
|
|
87
|
+
try {
|
|
88
|
+
if ((/^(?:\.\.?(?:\/|$)|\/|([A-Za-z]:)?[/\\])/).test(id)) {
|
|
89
|
+
file = findVariant(name, extensions, incPaths)
|
|
90
|
+
} else {
|
|
91
|
+
// lookup node_modules file
|
|
92
|
+
isNodeModulesPath = true
|
|
93
|
+
// like `@import 'taro-ui/dist/base.css';` or `@import '~taro-ui/dist/base.css';`
|
|
94
|
+
file = resolve.sync(path.join(dir, name).replace(/^~/, ''), { basedir, extensions })
|
|
95
|
+
}
|
|
96
|
+
} catch (error) {
|
|
97
|
+
}
|
|
98
|
+
|
|
83
99
|
if (!file) {
|
|
100
|
+
let includePaths = incPaths
|
|
101
|
+
if (isNodeModulesPath) {
|
|
102
|
+
includePaths = nodeModulesPaths(basedir, { extensions }, id)
|
|
103
|
+
}
|
|
84
104
|
const levelMessage = `
|
|
85
105
|
样式文件没有找到,请检查文件路径: ${id}
|
|
86
106
|
在 [
|
|
87
|
-
${
|
|
107
|
+
${includePaths.join(',\n ')}
|
|
88
108
|
]
|
|
89
109
|
`
|
|
90
110
|
if (logLevel === LogLevelEnum.ERROR) {
|
package/src/utils/lessImport.ts
CHANGED
|
@@ -1,47 +1,46 @@
|
|
|
1
|
-
import
|
|
1
|
+
import less from 'less'
|
|
2
2
|
import { resolveStyle } from './index'
|
|
3
|
-
import { LogLevelEnum } from '../types'
|
|
4
3
|
|
|
5
|
-
class Importer {
|
|
4
|
+
class Importer extends less.FileManager {
|
|
5
|
+
platform: 'android' | 'ios'
|
|
6
|
+
alias: Record<string, string> = {}
|
|
7
|
+
|
|
6
8
|
constructor (opt) {
|
|
9
|
+
super()
|
|
7
10
|
this.platform = opt.platform
|
|
8
11
|
this.alias = opt.alias
|
|
9
12
|
}
|
|
10
13
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
process (src: string, options: Less.PreProcessorExtraInfo) {
|
|
16
|
-
const { fileInfo } = options
|
|
17
|
-
const { filename, currentDirectory: basedir } = fileInfo
|
|
14
|
+
supports () {
|
|
15
|
+
return true
|
|
16
|
+
}
|
|
18
17
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
supportsSync () {
|
|
19
|
+
return false
|
|
20
|
+
}
|
|
22
21
|
|
|
22
|
+
async loadFile (
|
|
23
|
+
filename: string,
|
|
24
|
+
currentDirectory: string,
|
|
25
|
+
options: any,
|
|
26
|
+
environment: any
|
|
27
|
+
) {
|
|
23
28
|
const resolveOpts = {
|
|
24
|
-
basedir,
|
|
29
|
+
basedir: currentDirectory,
|
|
25
30
|
alias: this.alias,
|
|
26
31
|
platform: this.platform,
|
|
27
|
-
|
|
28
|
-
defaultExt: path.extname(filename)
|
|
32
|
+
defaultExt: '.less'
|
|
29
33
|
}
|
|
34
|
+
const rewriteFilename = resolveStyle(filename, resolveOpts)
|
|
30
35
|
|
|
31
|
-
|
|
32
|
-
src = src.replace(/@import\s+['"]([^'|"]*)['"]/gi, (_, id) => {
|
|
33
|
-
const relativePath = path.relative(basedir, resolveStyle(id.trim(), resolveOpts)).replace(/\\/g, '/')
|
|
34
|
-
return `@import '${relativePath}';`
|
|
35
|
-
})
|
|
36
|
-
|
|
37
|
-
return src
|
|
36
|
+
return super.loadFile(rewriteFilename, currentDirectory, options, environment)
|
|
38
37
|
}
|
|
39
38
|
}
|
|
40
39
|
|
|
41
40
|
function makeLessImport (options) {
|
|
42
41
|
return {
|
|
43
42
|
install: (_, pluginManager) => {
|
|
44
|
-
pluginManager.
|
|
43
|
+
pluginManager.addFileManager(new Importer(options))
|
|
45
44
|
},
|
|
46
45
|
minVersion: [2, 7, 1]
|
|
47
46
|
}
|