智能照明系统APP-本地串口
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
LightingSystemApp-serial/.svn/pristine/b3/b367786407a4e6543d6886cc595...

69 lines
1.7 KiB

const path = require('path')
const babel = require('@babel/core')
const {
hashify,
removeExt,
hasModule
} = require('@dcloudio/uni-cli-shared')
const {
resolve,
cacheCompilerOptions
} = require('./shared')
const babelPluginScopedComponent = require('./babel-plugin-scoped-component')
module.exports = function (content, map) {
if (process.env.UNI_USING_COMPONENTS) {
if (process.env.UNI_PLATFORM === 'app-plus') {
return require('./script-new').call(this, content, map)
}
return require('./script-new').call(this, content, map)
}
this.cacheable && this.cacheable()
// 单页面 解析 component 依赖
const plugins = []
if (hasModule('@babel/plugin-syntax-typescript')) {
plugins.push('@babel/plugin-syntax-typescript')
plugins.push([
'@babel/plugin-proposal-decorators',
{
legacy: true
}
])
}
plugins.push(babelPluginScopedComponent)
const ast = babel.transform(content, {
configFile: false,
plugins
})
const components = ast.metadata.components || {}
const imports = {}
const callback = this.async()
Promise.all(Object.keys(components).map(name => {
return resolve.call(this, components[name]).then(resolved => {
resolved = path.relative(process.env.UNI_INPUT_DIR, resolved)
const hashed = hashify(resolved)
imports[name] = {
name: hashed,
src: removeExt(resolved)
}
})
})).then(() => {
const realResourcePath = path.relative(process.env.UNI_INPUT_DIR, this.resourcePath)
const compilerOptions = {
name: hashify(realResourcePath),
imports
}
cacheCompilerOptions(realResourcePath, compilerOptions)
callback(null, content, map)
}, err => {
callback(err, content, map)
})
}