@@ -5,7 +5,6 @@ const babel = require('babel-core')
5
5
const path = require ( 'path' )
6
6
const fs = require ( 'fs' )
7
7
const deepEqual = require ( 'deep-equal' )
8
- const relative = require ( '../utils/relative' )
9
8
10
9
const { parseConfig, parseComponentsDeps, parseGlobalComponents, clearGlobalComponents } = require ( './parse' )
11
10
const { parseComponentsDeps : parseComponentsDepsTs } = require ( './parse-ts' )
@@ -51,7 +50,7 @@ function genComponentWxml (compiled, options, emitFile, emitError, emitWarning)
51
50
function createAppWxml ( emitFile , resourcePath , rootComponent , context ) {
52
51
const { src } = getFileInfo ( resourcePath ) || { }
53
52
const { name : componentName , filePath : wxmlSrc } = getCompNameAndSrc ( context , rootComponent )
54
- const wxmlContent = genPageWxml ( componentName , relative ( `/ ${ src } .wxml` , `/ ${ wxmlSrc } ` ) )
53
+ const wxmlContent = genPageWxml ( componentName , wxmlSrc )
55
54
emitFile ( `${ src } .wxml` , wxmlContent )
56
55
}
57
56
// 更新全局组件时,需要重新生成wxml,用这个字段保存所有需要更新的页面及其参数
@@ -118,12 +117,13 @@ function compileWxml (compiled, html) {
118
117
// 针对 .vue 单文件的脚本逻辑的处理
119
118
// 处理出当前单文件组件的子组件依赖
120
119
function compileMPScript ( script , mpOptioins , moduleId ) {
120
+ const { resourcePath, options, resolve, context } = this
121
121
const babelrc = getBabelrc ( mpOptioins . globalBabelrc )
122
122
let result , metadata
123
123
let scriptContent = script . content
124
124
const babelOptions = { extends : babelrc , plugins : [ parseComponentsDeps ] }
125
125
if ( script . src ) { // 处理src
126
- const scriptpath = path . join ( path . dirname ( this . resourcePath ) , script . src )
126
+ const scriptpath = path . join ( path . dirname ( resourcePath ) , script . src )
127
127
scriptContent = fs . readFileSync ( scriptpath ) . toString ( )
128
128
}
129
129
if ( script . lang === 'ts' ) { // 处理ts
@@ -138,16 +138,16 @@ function compileMPScript (script, mpOptioins, moduleId) {
138
138
139
139
// 处理子组件的信息
140
140
const components = { }
141
- const fileInfo = resolveTarget ( this . resourcePath , this . options . entry )
141
+ const fileInfo = resolveTarget ( resourcePath , options . entry )
142
142
if ( originComponents ) {
143
- resolveSrc ( originComponents , components , this . resolve , this . context ) . then ( ( ) => {
144
- resolveComponent ( this . resourcePath , fileInfo , importsMap , components , moduleId )
143
+ resolveSrc ( originComponents , components , resolve , context , options . context ) . then ( ( ) => {
144
+ resolveComponent ( resourcePath , fileInfo , importsMap , components , moduleId )
145
145
} ) . catch ( err => {
146
146
console . error ( err )
147
- resolveComponent ( this . resourcePath , fileInfo , importsMap , components , moduleId )
147
+ resolveComponent ( resourcePath , fileInfo , importsMap , components , moduleId )
148
148
} )
149
149
} else {
150
- resolveComponent ( this . resourcePath , fileInfo , importsMap , components , moduleId )
150
+ resolveComponent ( resourcePath , fileInfo , importsMap , components , moduleId )
151
151
}
152
152
153
153
return script
@@ -183,7 +183,7 @@ function compileMP (content, mpOptioins) {
183
183
184
184
// 解析全局组件的路径
185
185
const components = { }
186
- resolveSrc ( globalComps , components , resolve , context ) . then ( ( ) => {
186
+ resolveSrc ( globalComps , components , resolve , context , options . context ) . then ( ( ) => {
187
187
handleResult ( components )
188
188
} ) . catch ( err => {
189
189
console . error ( err )
@@ -220,13 +220,13 @@ function compileMP (content, mpOptioins) {
220
220
return content
221
221
}
222
222
223
- function resolveSrc ( originComponents , components , resolveFn , context ) {
223
+ function resolveSrc ( originComponents , components , resolveFn , context , projectRoot ) {
224
224
return Promise . all ( Object . keys ( originComponents ) . map ( k => {
225
225
return new Promise ( ( resolve , reject ) => {
226
226
resolveFn ( context , originComponents [ k ] , ( err , realSrc ) => {
227
227
if ( err ) return reject ( err )
228
228
const com = covertCCVar ( k )
229
- const { filePath, name } = getCompNameAndSrc ( context , realSrc )
229
+ const { filePath, name } = getCompNameAndSrc ( projectRoot , realSrc )
230
230
components [ com ] = { src : filePath , name }
231
231
resolve ( )
232
232
} )
0 commit comments