前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Pre and post exit in ABAP method and Nodejs

Pre and post exit in ABAP method and Nodejs

作者头像
Jerry Wang
发布2020-03-05 15:06:38
4330
发布2020-03-05 15:06:38
举报

ABAP

Use pre or post exit to put your enhancement to be executed before or after the original method is executed.

nodejs

example.js:

代码语言:javascript
复制
const ENVIRONMENT = process.env.npm_lifecycle_event;

if (ENVIRONMENT === "build") {
 console.log("Running your build tasks!");
}

if ( ENVIRONMENT === "dev") {
 console.log("Running the dev server!");
}

if ( ENVIRONMENT === "prestart") {
 console.log("Prestart event: Prepare for Start event!");
}

if ( ENVIRONMENT === "poststart") {
 console.log("Poststart event: Do some cleanup task!");
}

if ( ENVIRONMENT === "start") {
 console.log("Running App in production!");
}

type command “npm start” in cmd, and prestart and poststart script will be executed automatically. In fact this is how C4C local UI development is launched: check the complete script:

代码语言:javascript
复制
{
  "name": "sap-client-cod",
  "version": "1811.0.0-SNAPSHOT",
  "description": "SAP Customer OnDemand custom enhancements to Oberon HTML5 Client",
  "scripts": {
    "ariel": "ariel",
    "ariel:inspect": "npm run inspect node_modules/sap-n-ariel/bin/ariel",
    "build": "palm build",
    "build:all": "npm-run-all --aggregate-output --parallel build:component:**",
    "build:component:core": "palm build install -tdm --component sap.client.cod.core",
    "build:component:industry": "palm build install -tdm --component sap.client.cod.industry",
    "build:component:marketing": "palm build install -tdm --component sap.client.cod.marketing",
    "build:component:ncod": "palm build install -tdm --component sap.n.cod",
    "build:component:newui:dealfinder2": "palm build install -tdm --component sap.client.cod.newui.dealfinder2",
    "build:component:newui:evernote": "palm build install -tdm --component sap.client.cod.newui.evernote",
    "build:component:newui:mobileForecast": "palm build install -tdm --component sap.client.cod.newui.mobileForecast",
    "build:component:newui:pipeline": "palm build install -tdm --component sap.client.cod.newui.pipeline",
    "build:component:newui:service": "palm build install -tdm --component sap.client.cod.newui.service",
    "build:component:newui:shared": "palm build install -tdm --component sap.client.cod.newui.shared",
    "build:component:seod": "palm build install -tdm --component sap.client.cod.seod",
    "build:component:oberon": "palm build install -tdm --component sap.client.core",
    "clean:dist": "git clean -fdx dist",
    "clean:all": "git clean -fdx components coverage dist node_modules reports",
    "debug": "cross-var node $NODE_DEBUG_OPTION",
    "format": "palm format",
    "format:git:staged": "palm format --staged",
    "inspect": "node --inspect --inspect-brk",
    "lint": "palm lint",
    "lint:all": "palm lint 'cod/**/*.js'",
    "lint:all:src": "palm lint 'cod/**/src/main/uilib/**/*.js'",
    "lint:all:test": "palm lint 'cod/**/src/test/uilib/**/*.js'",
    "lint:git:staged": "palm lint --staged",
    "lint:git:head": "palm lint --head",
    "precommit": "npm run format:git:staged && npm run lint:git:staged",
    "preinstall": "git clean -fx .narv",
    "postinstall": "npm run update:narv",
    "prepare": "npm run register && npm run format package.json",
    "register": "palm extend sap-client --force --id cod",
    "reset": "npm run clean:all && npm run update:all",
    "serve": "brain start",
    "serve:debug": "npm run debug ./node_modules/sap-n-brain/bin/brain start",
    "serve:inspect": "npm run inspect ./node_modules/sap-n-brain/bin/brain start",
    "serve:dev": "cross-env NODE_ENV=development npm run serve",
    "serve:dev:debug": "cross-env NODE_ENV=development npm run serve:debug",
    "serve:dev:inspect": "cross-env NODE_ENV=development npm run serve:inspect",
    "serve:dist": "cross-env NODE_ENV=production npm run serve",
    "serve:dist:debug": "cross-env NODE_ENV=production npm run serve:debug",
    "serve:dist:inspect": "cross-env NODE_ENV=production npm run serve:inspect",
    "prestart": "npm1 run update:all",
    "prestart:debug": "npm run prestart",
    "prestart:inspect": "npm run prestart",
    "start": "npm -1d run serve:dev",
    "start:debug": "npm -d run serve:dev:debug",
    "start:inspect": "npm -d run serve:dev:inspect",
    "test:marketing": "npm run test karma-sap.client.cod.marketing",
    "test:newui:shared": "npm run test karma-sap.client.cod.newui.shared",
    "test:seod": "npm run test karma-sap.client.cod.seod",
    "test:n:cod": "npm run test karma-sap.n.cod",
    "test": "palm test",
    "preupdate:all": "npm run preinstall && npm run update:npm",
    "update:all": "npm update --no-save && npm run update:narv",
    "postupdate:all": "npm run prepare",
    "update:narv": "narv install",
    "update:npm": "npm list -g npm@5.10 || npm install -g npm@5.10",
    "version:reactor": "mvn -U versions:set -DnewVersion=$npm_package_version -DgroupId='*' -DprocessAllModules=true -DgenerateBackupPoms=false -f cod/pom.xml",
    "version:reactor:parent": "mvn -U versions:update-parent -DallowSnapshots=true -DparentVersion=[$npm_package_version] -DgroupId='*' -DgenerateBackupPoms=false -f cod/pom.xml",
    "version": "npm run version:reactor && npm run version:reactor:parent && npm install && npm run format package.json && git add --all",
    "check": "palm check",
    "test:n:cod:integration": "npm run ariel ariel-sap.client.cod.salesOrder",
    "test:n:cod:integration:inspect": "npm run ariel:inspect ariel-sap.client.cod.salesOrder",
    "test:n:cod:contracts": "npm run ariel ariel-sap.n.cod.contract",
    "test:n:cod:contracts:inspect": "npm run ariel:inspect ariel-sap.n.cod.contract"
  },
  "config": {
    "lint": {
      "formatter": "stylish"
    },
    "brain": {
      "branding": {
        "theme": "AURORA"
      },
      "server": {
        "http": {
          "host": "0.0.0.0",
          "port": 8080
        }
      },
      "cerebro": {
        "components": [
          "sap.n.base",
          "sap.n",
          "sap.n.cod"
        ]
      },
      "compression": true,
      "cors": {
        "origin": "*"
      },
      "forwards": [
        {
          "source": "^\\/application(\\/.*)$",
          "target": "$1",
          "description": "legacy forward for old Tomcat use-cases based on application path"
        },
        {
          "source": "^(\\/resources\\/)sap-ui-cachebuster\\/(.*)$",
          "target": "$1$2",
          "description": "sap-ui-cachebuster bootstrapping not yet supported"
        },
        {
          "source": "^(.*)TestSuiteForJSFiles(.*)$",
          "target": "$1TestSuite$2",
          "description": "fallback to old test suites having extension ForJSFiles. Relict from old html unit tests fieles. This forward rule should be removed in 1802"
        },
        {
          "source": "\\/proxy\\/(http|https)\\/([^_]*)\\/sap\\/ap\\/ui\\/repository(\\/.+){1}\\/BYD_COD\\/Runtime\\/HTML(\\/resources\\/.*)$",
          "target": "$4",
          "description": "Forward to local resources"
        },
        {
          "source": "(?:\\/sap-ui-cachebuster)*\\/BYD_COD\\/Runtime\\/HTML(\\/resources\\/.*)$",
          "target": "$1",
          "description": "Forward to local resources"
        }
      ],
      "fallbacks": [
        {
          "source": "^(.*\\/themes\\/)([^\\/]*)(\\/.*)$",
          "target": "$1base$3",
          "description": "fallback to base theme"
        },
        {
          "source": "^(.*\\/)([^_]*)(_[^_]*)_HK\\.properties$",
          "target": "$1$2$3_TW.properties",
          "description": "special fallback for chinese language"
        },
        {
          "source": "^(.*\\/)([^_]*)(_[^_]*)(_((?!HK).)*)\\.properties$",
          "target": "$1$2$3.properties",
          "description": "fallback to no-country"
        },
        {
          "source": "^(.*\\/)([^_]*)(_((?!en).)*)\\.properties$",
          "target": "$1$2_en.properties",
          "description": "fallback to english language properties"
        },
        {
          "source": "^(.*\\/)([^_]*)(_en)\\.properties$",
          "target": "$1$2.properties",
          "description": "fallback to base properties"
        }
      ],
      "proxies": [
        {
          "path": "^\\/proxy\\/(http|https)\\/(.*)$",
          "description": "proxy for requests to backend system",
          "target": "$0://$1"
        }
      ],
      "environments": {
        "development": {
          "forwards": [
            {
              "source": "^(\\/resources\\/sap\\/client\\/.*)-dbg(.*)\\.js$",
              "target": "$1$2.js",
              "description": "debug forward for client"
            },
            {
              "source": "^(\\/resources\\/sap\\/n\\/.*)-dbg(.*)\\.js$",
              "target": "$1$2.js",
              "description": "debug forward for n"
            },
            {
              "source": "^(\\/resources\\/JAM|JSST|mashup\\/.*)-dbg(.*)\\.js$",
              "target": "$1$2.js",
              "description": "debug forward for additional project resources"
            }
          ]
        }
      }
    },
    "codes": [
      {
        "name": "ProjectComponentResourceCategoryCode.STANDARD",
        "config": {
          "path": "/resources"
        }
      },
      {
        "name": "ProjectComponentResourceCategoryCode.TEST",
        "config": {
          "path": "/test-resources"
        }
      }
    ],
    "component": {
      "narv": {
        "base": "components",
        "format": "jar",
        "host": "nexus.wdf.sap.corp",
        "port": 8081,
        "protocol": "MAVEN",
        "repository": "deploy.snapshots",
        "scheme": "http"
      },
      "project": {
        "base": "cod",
        "source": {
          "directory": "src/main/uilib"
        },
        "test": {
          "directory": "src/test/uilib"
        }
      }
    },
    "build": {
      "path": "dist"
    },
    "test": {
      "karma": {
        "config": "karma.conf.js"
      },
      "mocha": {
        "config": "mocha.opts"
      }
    }
  },
  "keywords": [
    "Oberon",
    "C4C"
  ],
  "author": {
    "name": "SAP SE"
  },
  "contributors": [
    "SAP SE <*@sap.com>"
  ],
  "repository": {
    "type": "git",
    "url": "ssh://git@git.wdf.sap.corp:29418/LEAP/leap_cod.git"
  },
  "private": true,
  "devDependencies": {
    "compression": "^1.7.3",
    "connect-openui5": "^0.7.3",
    "cors": "^2.8.1",
    "glob": "^7.1.2",
    "npm-run-all": "^4.1.2",
    "sap-n-ariel": "^3.0.1",
    "sap-n-base": "^1.0.11",
    "sap-n-brain": "^3.1.0",
    "sap-n-brain-cerebro": "^3.0.0",
    "sap-n-brain-fallback": "^1.0.6",
    "sap-n-brain-forward": "^1.0.6",
    "sap-n-brain-index": "^1.0.2",
    "sap-n-brain-less": "^1.0.2",
    "sap-n-brain-proxy": "^2.0.0",
    "sap-n-log": "^1.0.10",
    "sap-n-narv": "^3.0.0",
    "sap-n-palm": "^5.0.0",
    "sap-n-project": "^3.2.0",
    "websql": "^0.4.4",
    "xmldom": "^0.1.27",
    "xpath": "0.0.24"
  },
  "$components": [
    {
      "groupId": "com.sap.n",
      "artifactId": "cod",
      "id": "sap.n.cod",
      "path": "ncod",
      "type": "LIB",
      "origin": "PROJECT",
      "dependencies": [
        "sap.n",
        "sap.n.base"
      ]
    },
    {
      "groupId": "com.sap.client.cod",
      "artifactId": "core",
      "id": "sap.client.cod.core",
      "path": "core",
      "type": "LIB",
      "origin": "PROJECT",
      "dependencies": [
        "sap.client.controls.core",
        "sap.ui.core"
      ]
    },
    {
      "groupId": "com.sap.client.cod",
      "artifactId": "industry",
      "id": "sap.client.cod.industry",
      "path": "industry",
      "type": "LIB",
      "origin": "PROJECT",
      "dependencies": [
        "sap.client.controls.core",
        "sap.ui.core"
      ]
    },
    {
      "groupId": "com.sap.client.cod",
      "artifactId": "marketing",
      "id": "sap.client.cod.marketing",
      "path": "marketing",
      "type": "LIB",
      "origin": "PROJECT",
      "dependencies": [
        "sap.client.controls.core",
        "sap.ui.core"
      ]
    },
    {
      "groupId": "com.sap.client.cod",
      "artifactId": "salesOrder",
      "id": "sap.client.cod.salesOrder",
      "path": "ncod",
      "type": "LIB",
      "origin": "PROJECT",
      "dependencies": [
        "sap.client.controls.core",
        "sap.ui.core"
      ]
    },
    {
      "groupId": "com.sap.client.cod.newui",
      "artifactId": "dealFinder2",
      "id": "sap.client.cod.newui.dealfinder2",
      "path": "newui/dealFinder2",
      "type": "LIB",
      "origin": "PROJECT",
      "dependencies": [
        "sap.ca.ui",
        "sap.client.cod.newui.shared",
        "sap.ui.core"
      ]
    },
    {
      "groupId": "com.sap.client.cod.newui",
      "artifactId": "mobileForecast",
      "id": "sap.client.cod.newui.mobileForecast",
      "path": "newui/mobileForecast",
      "type": "LIB",
      "origin": "PROJECT",
      "dependencies": [
        "sap.client.cod.newui.shared",
        "sap.ui.core"
      ]
    },
    {
      "groupId": "com.sap.client.cod.newui",
      "artifactId": "evernote",
      "id": "sap.client.cod.newui.evernote",
      "path": "newui/evernote",
      "type": "LIB",
      "origin": "PROJECT",
      "dependencies": [
        "sap.client.cod.newui.shared",
        "sap.ui.core"
      ]
    },
    {
      "groupId": "com.sap.client.cod.newui",
      "artifactId": "pipeline",
      "id": "sap.client.cod.newui.pipeline",
      "path": "newui/pipeline",
      "type": "LIB",
      "origin": "PROJECT",
      "dependencies": [
        "sap.ca.ui",
        "sap.client.cod.newui.shared",
        "sap.ui.core"
      ]
    },
    {
      "groupId": "com.sap.client.cod.newui",
      "artifactId": "service",
      "id": "sap.client.cod.newui.service",
      "path": "newui/service",
      "type": "LIB",
      "origin": "PROJECT",
      "dependencies": [
        "sap.ca.ui",
        "sap.client.cod.newui.shared",
        "sap.ui.core"
      ]
    },
    {
      "groupId": "com.sap.client.cod.newui",
      "artifactId": "shared",
      "id": "sap.client.cod.newui.shared",
      "path": "newui/shared",
      "type": "LIB",
      "origin": "PROJECT",
      "dependencies": [
        "sap.ca.scfld.md",
        "sap.client.m",
        "sap.ui.core"
      ]
    },
    {
      "groupId": "com.sap.client.cod",
      "artifactId": "seod",
      "id": "sap.client.cod.seod",
      "path": "seod",
      "type": "LIB",
      "origin": "PROJECT",
      "dependencies": [
        "sap.client.controls.core",
        "sap.ui.core"
      ]
    },
    {
      "groupId": "com.sap.client",
      "artifactId": "application",
      "id": "sap.client.core",
      "format": "war",
      "path": "oberon",
      "type": "APP",
      "origin": "NARV",
      "libraries": [
        {
          "groupId": "com.sap.ui5",
          "artifactId": "core",
          "id": "sap.ui.core"
        },
        {
          "groupId": "com.sap.ca",
          "artifactId": "scfld.md",
          "id": "sap.ca.scfld.md"
        },
        {
          "groupId": "com.sap.ca",
          "artifactId": "ui",
          "id": "sap.ca.ui"
        },
        {
          "groupId": "com.sap.ui5",
          "artifactId": "commons",
          "id": "sap.ui.commons"
        },
        {
          "groupId": "com.sap.ui5",
          "artifactId": "comp",
          "id": "sap.ui.comp"
        },
        {
          "groupId": "com.sap.ui5",
          "artifactId": "fl",
          "id": "sap.ui.fl"
        },
        {
          "groupId": "com.sap.ui5",
          "artifactId": "mobile",
          "id": "sap.m"
        },
        {
          "groupId": "com.sap.ui5",
          "artifactId": "richtexteditor",
          "id": "sap.ui.richtexteditor"
        },
        {
          "groupId": "com.sap.ui5",
          "artifactId": "table",
          "id": "sap.ui.table"
        },
        {
          "groupId": "com.sap.ui5",
          "artifactId": "layout",
          "id": "sap.ui.layout"
        },
        {
          "groupId": "com.sap.ui5",
          "artifactId": "ux3",
          "id": "sap.ui.ux3"
        },
        {
          "groupId": "com.sap.ui5",
          "artifactId": "unified",
          "id": "sap.ui.unified",
          "type": "LIB"
        },
        {
          "groupId": "com.sap.ushell",
          "artifactId": "ushell-lib",
          "id": "sap.ushell"
        },
        {
          "groupId": "com.sap.ui5",
          "artifactId": "viz",
          "id": "sap.viz"
        },
        {
          "groupId": "com.sap.suite",
          "artifactId": "suite-ui-commons",
          "id": "sap.suite.ui.commons"
        },
        {
          "groupId": "com.sap.suite",
          "artifactId": "suite-ui-microchart",
          "id": "sap.suite.ui.microchart"
        },
        {
          "groupId": "com.sap.ui5",
          "artifactId": "themelib_sap_belize",
          "id": "themelib_sap_belize"
        },
        {
          "groupId": "com.sap.ui5",
          "artifactId": "themelib_sap_bluecrystal",
          "id": "themelib_sap_bluecrystal"
        },
        {
          "groupId": "com.sap.ui5",
          "artifactId": "themelib_sap_goldreflection",
          "id": "themelib_sap_goldreflection"
        },
        {
          "groupId": "com.sap.client",
          "artifactId": "analytics",
          "id": "sap.client.analytics"
        },
        {
          "groupId": "com.sap.client",
          "artifactId": "ariel",
          "id": "sap.client.ariel"
        },
        {
          "groupId": "com.sap.client",
          "artifactId": "basecontrols",
          "id": "sap.client.basecontrols.core"
        },
        {
          "groupId": "com.sap.client",
          "artifactId": "cod",
          "id": "sap.client.cod"
        },
        {
          "groupId": "com.sap.client",
          "artifactId": "controls",
          "id": "sap.client.controls.core"
        },
        {
          "groupId": "com.sap.client",
          "artifactId": "core",
          "id": "sap.client"
        },
        {
          "groupId": "com.sap.client",
          "artifactId": "debug",
          "id": "sap.client.debug"
        },
        {
          "groupId": "com.sap.client",
          "artifactId": "embsupcore",
          "id": "sap.client.embsup"
        },
        {
          "groupId": "com.sap.client",
          "artifactId": "extensibility",
          "id": "sap.client.extensibility"
        },
        {
          "groupId": "com.sap.client",
          "artifactId": "flex.runtime",
          "id": "sap.client.flex.runtime"
        },
        {
          "groupId": "com.sap.client",
          "artifactId": "flex.runtime.content",
          "id": "sap.client.flex.runtime.content"
        },
        {
          "groupId": "com.sap.client",
          "artifactId": "login",
          "id": "sap.client.login"
        },
        {
          "groupId": "com.sap.client",
          "artifactId": "m",
          "id": "sap.client.m"
        },
        {
          "groupId": "com.sap.client",
          "artifactId": "m.analytics",
          "id": "sap.client.m.analytics"
        },
        {
          "groupId": "com.sap.client",
          "artifactId": "mashup",
          "id": "sap.client.mashup"
        },
        {
          "groupId": "com.sap.client",
          "artifactId": "setup",
          "id": "sap.client.setup"
        },
        {
          "groupId": "com.sap.client",
          "artifactId": "thirdparty",
          "id": "sap.client.thirdparty"
        },
        {
          "groupId": "com.sap.client",
          "artifactId": "wkt",
          "id": "sap.client.wkt"
        },
        {
          "groupId": "com.sap.n",
          "artifactId": "base",
          "id": "sap.n.base"
        },
        {
          "groupId": "com.sap.n",
          "artifactId": "test",
          "id": "sap.n.test"
        },
        {
          "groupId": "com.sap.n",
          "artifactId": "core",
          "id": "sap.n"
        }
      ]
    },
    {
      "groupId": "com.sap.n",
      "artifactId": "core",
      "id": "test.sap.n",
      "path": "oberon/test/sap/n",
      "type": "LIB",
      "origin": "NARV",
      "classifier": "testresources"
    },
    {
      "groupId": "com.sap.client",
      "artifactId": "core",
      "id": "test.sap.client",
      "path": "oberon/test/sap/client",
      "type": "LIB",
      "origin": "NARV",
      "classifier": "testresources"
    }
  ],
  "$tests": [
    {
      "id": "ariel-sap.client.cod.salesOrder",
      "component": "sap.client.cod.salesOrder",
      "config": "order.ariel.config.js",
      "category": "ARIEL"
    },
    {
      "id": "ariel-sap.n.cod.contract",
      "component": "sap.n.cod",
      "config": "contract.ariel.config.js",
      "category": "ARIEL"
    },
    {
      "id": "karma-sap.n.cod",
      "component": "sap.n.cod",
      "category": "KARMA"
    },
    {
      "id": "karma-sap.client.cod.marketing",
      "component": "sap.client.cod.marketing",
      "category": "KARMA"
    },
    {
      "id": "karma-sap.client.cod.newui.shared",
      "component": "sap.client.cod.newui.shared",
      "category": "KARMA"
    },
    {
      "id": "karma-sap.client.cod.seod",
      "component": "sap.client.cod.seod",
      "category": "KARMA"
    }
  ]
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-03-02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ABAP
  • nodejs
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档