Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add weex for openharmony #3350

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
22 changes: 22 additions & 0 deletions ohos/AdvancedAPI_OHOS/.babelrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"presets": [
[
"@babel/preset-env",
{
"modules":false,
"targets":{
"chrome":"73",
"node":"16"
}
}
]
],
"plugins": [
[
"@babel/plugin-proposal-decorators",
{
"legacy": true
}
]
]
}
1 change: 1 addition & 0 deletions ohos/AdvancedAPI_OHOS/.eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/dist
154 changes: 154 additions & 0 deletions ohos/AdvancedAPI_OHOS/.eslintrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,154 @@
{
"parser": "babel-eslint",

"extends": [
"plugin:flowtype/recommended"
],

"plugins": [
"flowtype"
],

"parserOptions": {
"ecmaVersion": 6,
"sourceType": "module"
},

"env": {
"es6": true,
"node": true,
"mocha": true
},
"globals": {
"globalThis": false,
"AppStorage": true,
"requireAPI": true,
"getCachedElement": true,
"document": true
},

"rules": {
"flowtype/no-types-missing-file-annotation": 0,
"accessor-pairs": 2,
"arrow-spacing": [2, { "before": true, "after": true }],
"block-spacing": [2, "always"],
"brace-style": [2, "1tbs", { "allowSingleLine": true }],
"camelcase": [2, { "properties": "never" }],
"comma-dangle": [2, "only-multiline"],
"comma-spacing": [2, { "before": false, "after": true }],
"comma-style": [2, "last"],
"constructor-super": 2,
"curly": [2, "multi-line"],
"dot-location": [2, "property"],
"eol-last": 2,
"eqeqeq": [2, "allow-null"],
"generator-star-spacing": [2, { "before": true, "after": true }],
"handle-callback-err": [2, "^(err|error)$" ],
"indent": [2, 2, { "SwitchCase": 1 }],
"key-spacing": [2, { "beforeColon": false, "afterColon": true }],
"keyword-spacing": [2, { "before": true, "after": true }],
"new-cap": [2, { "newIsCap": true, "capIsNew": false }],
"new-parens": 2,
"no-array-constructor": 2,
"no-caller": 2,
"no-class-assign": 2,
"no-cond-assign": 2,
"no-const-assign": 2,
"no-control-regex": 2,
"no-debugger": 2,
"no-delete-var": 2,
"no-dupe-args": 2,
"no-dupe-class-members": 2,
"no-dupe-keys": 2,
"no-duplicate-case": 2,
"no-empty-character-class": 2,
"no-empty-pattern": 2,
"no-eval": 2,
"no-ex-assign": 2,
"no-extend-native": 2,
"no-extra-bind": 2,
"no-extra-boolean-cast": 2,
"no-extra-parens": [2, "functions"],
"no-fallthrough": 2,
"no-floating-decimal": 2,
"no-func-assign": 2,
"no-implied-eval": 2,
"no-inner-declarations": [2, "functions"],
"no-invalid-regexp": 2,
"no-irregular-whitespace": 2,
"no-iterator": 2,
"no-label-var": 2,
"no-labels": [2, { "allowLoop": false, "allowSwitch": false }],
"no-lone-blocks": 2,
"no-mixed-spaces-and-tabs": 2,
"no-multi-spaces": 2,
"no-multi-str": 2,
"no-multiple-empty-lines": [2, { "max": 1 }],
"no-native-reassign": 2,
"no-negated-in-lhs": 2,
"no-new-object": 2,
"no-new-require": 2,
"no-new-symbol": 2,
"no-new-wrappers": 2,
"no-obj-calls": 2,
"no-octal": 2,
"no-octal-escape": 2,
"no-path-concat": 2,
"no-proto": 2,
"no-redeclare": 2,
"no-regex-spaces": 2,
"no-return-assign": [2, "except-parens"],
"no-self-assign": 2,
"no-self-compare": 2,
"no-sequences": 2,
"no-shadow-restricted-names": 2,
"no-spaced-func": 2,
"no-sparse-arrays": 2,
"no-this-before-super": 2,
"no-throw-literal": 2,
"no-trailing-spaces": 2,
"no-undef": 2,
"no-undef-init": 2,
"no-unexpected-multiline": 2,
"no-unmodified-loop-condition": 2,
"no-unneeded-ternary": [2, { "defaultAssignment": false }],
"no-unreachable": 2,
"no-unsafe-finally": 2,
"no-unused-vars": [2, { "vars": "all", "args": "none" }],
"no-useless-call": 2,
"no-useless-computed-key": 2,
"no-useless-constructor": 2,
"no-useless-escape": 2,
"no-whitespace-before-property": 2,
"no-with": 2,
"one-var": [2, { "initialized": "never" }],
"padded-blocks": [2, "never"],
"quotes": [2, "single", {"avoidEscape": true, "allowTemplateLiterals": true}],
"semi": [2, "never"],
"semi-spacing": [2, { "before": false, "after": true }],
"space-before-blocks": [2, "always"],
"space-in-parens": [2, "never"],
"space-infix-ops": 2,
"space-unary-ops": [2, { "words": true, "nonwords": false }],
"spaced-comment": [2, "always", { "markers": ["global", "globals", "eslint", "eslint-disable", "*package", "!", ","] }],
"template-curly-spacing": [2, "never"],
"use-isnan": 2,
"valid-typeof": 2,
"wrap-iife": [2, "any"],
"yield-star-spacing": [2, "both"],
"yoda": [2, "never"],

"no-var": 2,
"prefer-const": 2,
"object-curly-spacing": [2, "always", {
"objectsInObjects": false
}],
"array-bracket-spacing": [2, "never"]
},

"settings": {
"flowtype": {
"onlyFilesWithFlowAnnotation": true
}
}
}
11 changes: 11 additions & 0 deletions ohos/AdvancedAPI_OHOS/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
dist
node_modules
src/qafApi/modules/Account/environment/SetMirror.js
package-lock.json
oh_modules
hvigor
.hvigor
.idea
oh-package-lock.json5
local.properties
hvigorw
22 changes: 22 additions & 0 deletions ohos/AdvancedAPI_OHOS/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
### 编译生成js

git clone下载源码,在根目录中执行:

```
npm install
```

然后使用如下命令打包生成一个js文件:

```
npm run build:advanced
```

### 生成har包或者hsp包

- 使用DevEco Studio打开project/advancedHsp工程,新建如下两个路径:
- project\advancedApiHsp\advanced_api_har\src\main\ets\utils\
- project\advancedApiHsp\advanced_api_hsp\src\main\ets\utils\
- 把生成的js文件dist/advancedapi.min.js复制到上述位置
- 点击菜单: `Build` -- `Make All Modules`生成所有模块
- har包生成在路径:advancedApiHsp\advanced_api_har\build\default\outputs\default中
141 changes: 141 additions & 0 deletions ohos/AdvancedAPI_OHOS/build/build.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
const fs = require('fs')
const path = require('path')
const gzip = require('zlib').createGzip()
const rollup = require('rollup')

const getConfig = require('./config')

if (!fs.existsSync('dist')) {
fs.mkdirSync('dist')
}

let isWatch = false
if (process.argv[3]) {
isWatch = process.argv[3] === '--watch' || process.argv[3] === '-w'
}

// build specific package
if (process.argv[2]) {
build(process.argv[2])
} else {
console.log('\nPlease specify the package you want to build. [native, runtime, browser, vue]')
}
build(process.argv[2])

function build (name) {
const pkgName = 'API'
console.log(`\n => start to build ${name} (${pkgName})\n`)

if (isWatch) {
runRollupOnWatch(name)
return
}

const config = getConfig({ name })
const minifyConfig = getConfig({ minify: true, name })

return new Promise((resolve, reject) => {
runRollup(config).then(() => {
runRollup(minifyConfig).then(() => {
if(name==='advanced'){
replaceFile(minifyConfig.output.file,
[
/;import/g,
/from"/g,
/import{/g,
/}from/g,
/import"/g,
/";function/g
]
,
[
';\nimport',
'from "',
'import {',
'} from',
'import "',
'";\nfunction'
]).then(()=>{
zip(minifyConfig.output.file, resolve)
})
}else{
zip(minifyConfig.output.file, resolve)
}
})
})
})
}

function runRollup (config) {
return new Promise((resolve, reject) => {
rollup.rollup(config).then(bundle => {
bundle.write(config).then(() => {
report(config.output.file)
resolve()
})
})
})
}

function runRollupOnWatch (name) {
const config = getConfig({ name, isWatch })
const watcher = rollup.watch(config)
watcher.on('event', event => {
switch (event.code) {
case 'STARTING':
console.log('checking rollup.watch version...')
break
case 'BUILD_START':
console.log('bundling...')
break
case 'BUILD_END':
break
case 'END':
console.info('compile jsBundle success...')
break
case 'ERROR':
console.error('ERROR: ', event.error)
break
}
})
}

function zip (filePath, callback) {
const read = fs.createReadStream(filePath)
const write = fs.createWriteStream(filePath + '.gz')
read.pipe(gzip).pipe(write).on('close', () => {
report(filePath + '.gz')
callback && callback()
})
}

function report (filePath) {
const size = (fs.statSync(filePath).size / 1024).toFixed(2) + 'KB'
const file = path.relative(process.cwd(), filePath)
console.log(` => write ${file} (${size})`)
}

function replaceFile (filePath, sourceRegx, targetStr) {
return new Promise((resolve, reject) => {
fs.readFile(filePath, function (err, data) {
if (err) {
console.error(err)
reject()
return
}
let str = data.toString()
for (let i = 0; i < sourceRegx.length; i++) {
str = str.replace(sourceRegx[i], targetStr[i])
}
fs.writeFile(filePath, str, function (err) {
if (err) {
console.error(err)
reject()
return
}
console.log('=> replaceFile success')
resolve()
})
})
})
}
Loading