• [技术干货] 设置npm的registr
    1.原npm地址npm config set registry http://registry.npmjs.org 2.设置国内镜像a.通过config命令npm config set registry https://registry.npm.taobao.org  npm info underscore (如果上面配置正确这个命令会有字符串response)b.命令行指定npm --registry https://registry.npm.taobao.org info underscore c.编辑 ~/.npmrc 加入下面内容registry = https://registry.npm.taobao.org3.使用nrm管理registry地址a.下载nrmnpm install -g nrmb.添加registry地址nrm add npm http://registry.npmjs.orgnrm add taobao https://registry.npm.taobao.orgc.切换npm registry地址nrm use taobaonrm use npm清除代理npm config rm proxy npm config rm https-proxy
  • [问题求助] 【物联网应用侧开发SDK产品】【node.js 功能】构建npm报错
    【功能模块】我想使用开发微信小程序连接华为云的物联网平台,就简单的数据收发就行,我看有官方的node.js sdk,然后我npm install后,构建npm会报下面的错,有大神知道吗?【操作步骤&问题现象】1、npm install @huaweicloud/huaweicloud-sdk-core2、npm install @huaweicloud/huaweicloud-sdk-iotda3、构建npm【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [技术干货] 【Devcloud】npm构建之下载依赖报错篇
            大家好,沉寂了多日,我静下心来梳理高频报错,发现npm构建中的一个小问题屡屡映入眼帘,这个可恨的报错卡点,今天就让我们将他连精神带肉体统统扫进历史的大垃圾箱中!       首先我们看一下报错现象~:       npm ERR! notarget No matching version found for @vue/babel-preset-app@^4.5.19   日志显示,我们找不到这个依赖包,可是不科学啊,我的任务明明几个小时前还完全正常,并且我没有改动过任何代码,怎么会找不到呢?相信电视机前的小伙伴内心都会跟我产生同样的疑惑!下面我来为大家答疑解惑!以下是排查并解决问题的几个步骤~1.我们去浏览器里访问npm的官网:https://www.npmjs.com/,找到我们的当事人:@vue/babel-preset-app ~把这个组件名称输入进去如图:2.点击下图标红位置,查看该组件的版本发布历史,原来npm官网上4个小时前更新了这个包的版本!找到原因啦,因为直接从npm官网下载镜像会很慢,所以我们在华为云devcloud云端编译构建的时候,默认使用的是我们华为云的开源镜像站,以便于提高用户的构建速度!但是这个包官方刚刚才更新,我们的华为云镜像站还没有同步这个镜像。3.好的,既然原因我们已经找到了,那该如何解决呢?答:最快速简单的办法,就是把版本号往前移一位。换一个稍微旧点的版本,我们拿这个5.0.6的版本来代替。另外我们可以通过这种方式来查看我们华为云上当前提供的最新镜像版本:https://mirrors.huaweicloud.com/repository/npm/“组件名称”,比如这样:方法一:找到我们的代码仓库-package.json文件~ 进行如下修改:方法二:进入我们的编译构建任务-npm构建的命令行内增加这个命令:npm install @vue/babel-preset-app@5.0.64.执行构建查看结果,ok,构建成功~这类问题大家学会了嘛?小伙伴们,我们下期再见!
  • [技术干货] 设置npm的registry
    1.原npm地址npm config set registry http://registry.npmjs.org 2.设置国内镜像a.通过config命令npm config set registry https://registry.npm.taobao.org  npm info underscore (如果上面配置正确这个命令会有字符串response)b.命令行指定npm --registry https://registry.npm.taobao.org info underscore c.编辑 ~/.npmrc 加入下面内容registry = https://registry.npm.taobao.org3.使用nrm管理registry地址a.下载nrmnpm install -g nrmb.添加registry地址nrm add npm http://registry.npmjs.orgnrm add taobao https://registry.npm.taobao.orgc.切换npm registry地址nrm use taobaonrm use npm清除代理npm config rm proxy npm config rm https-proxy
  • [问题求助] CloudIDE安装 npm install 时报错误
    CloudIDE安装 npm install 时报如下错误,请问是什么问题呢这个是DevStar里在线像素绘图工具里的请问这是什么问题呢
  • [技术干货] npm install安装报错:gyp info it worked if it ends with ok的解决方法【转载】
    今天新启动一个项目,在 npm install 安装依赖项时出现报错,所以下面这篇文章主要给大家介绍了关于npm install安装报错:gyp info it worked if it ends with ok的解决方法,需要的朋友可以参考下目录• 1.可能原因1:node和node-sass版本冲突, • 2.node.js卸载与安装 • 3.node-sass卸载安装, • 4.安装好后对应版本的node和node-sass后启动 • 总结 前端vue新项目 npm install安装报错 gyp info it worked if it ends with ok1.可能原因1:node和node-sass版本冲突,对应的node和node-sass的版本如下2.node.js卸载与安装之前有安装过弄过node.js的如果node.js版本过高需要重新安装低版本node.js,在控制面板卸载node.js,再在node官网 下载对应的msi包安装到之前的安装过node.js的文件夹下。低版本的node.js 只需直接下载高版本的msi包安装无需卸载之前的低版本node.js,这样不需要再去配置环境变量啥的,3.node-sass卸载安装,node-sass卸载:1npm uninstall node-sassnode-sass安装可以指定版本:npm install node-sass 布置的版本直接安装npm install node-sass@4.14.0 指定4.14版本的,如果安装报错试试换下淘宝镜像,一个好的解决方案在是直接在项目根目录下创建一个 .npmrc文件指定淘宝镜像文件内容:sass_binary_site=https://npm.taobao.org/mirrors/node-sass/ phantomjs_cdnurl=https://npm.taobao.org/mirrors/phantomjs/ electron_mirror=https://npm.taobao.org/mirrors/electron/ registry=https://registry.npm.taobao.org4.安装好后对应版本的node和node-sass后启动再npm install , npm run dev 没有报错啦总结到此这篇关于npm install安装报错:gyp info it worked if it ends with ok解决的文章就介绍到这了转载自https://www.jb51.net/article/255441.htm
  • [技术干货] 设置npm的registr
    1.原npm地址npm config set registry http://registry.npmjs.org 2.设置国内镜像a.通过config命令npm config set registry https://registry.npm.taobao.org  npm info underscore (如果上面配置正确这个命令会有字符串response)b.命令行指定npm --registry https://registry.npm.taobao.org info underscore c.编辑 ~/.npmrc 加入下面内容registry = https://registry.npm.taobao.org3.使用nrm管理registry地址a.下载nrmnpm install -g nrmb.添加registry地址nrm add npm http://registry.npmjs.orgnrm add taobao https://registry.npm.taobao.orgc.切换npm registry地址nrm use taobaonrm use npm清除代理npm config rm proxy npm config rm https-proxy
  • [行业资讯] 攻击者窃取了十万 npm 用户账号登陆信息
    GitHub 披露黑客在 4 月中旬的攻击中窃取了近十万 npm 用户账号登陆信息,这次攻击利用了签发给 Heroku 和 Travis-CI 的 OAuth 应用令牌。攻击者访问了一个 2015 年的用户信息存档,其中含有近 10 万 npm 用户名,密码哈希和电邮地址,虽然哈希密码是用弱哈希算法如加盐 SHA1 生成因此容易破解,但 GitHub 从 3 月 1 日起对所有账号自动启用了电邮验证,控制账号的尝试会自动阻止。在分析和检查了所有 npm 软件包版本的哈希之后,GitHub 确信攻击者没有修改任何公开的软件包或上传现有软件包的新版本。GitHub 重置了所有受影响用户的密码,并向受影响组织和用户发送了通知。(Solidot)转载于CSDN微信公众号
  • [技术干货] 详解npm脚本和package.json
    npm是什么npm是前端开发广泛使用的包管理工具,它让js开发者分享、复用代码更方便。可以重复的框架代码被称为包(package)或者模块(module),一个包可是是一个文件夹里放着几个文件夹,还有一个package.json文件。1、什么是npm脚本  在创建node.js项目如一个vue项目,或一个react项目时,项目都会生成一个描述文件package.json 。比如npm允许在package.json文件里面,使用scripts字段定义脚本命令。1234567891011{//..."scripts": { "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js", "start": "npm run dev", "e2e": "node test/e2e/runner.js", "test": "npm run e2e", "lint": "eslint --ext .js,.vue src test/e2e/specs", "build": "node build/build.js" },}  上面代码是package.json文件的一个片段,里面的scripts字段是一个对象。它的每一个属性,对应一段脚本。比如,build命令对应的脚本是node build.js 。  命令行下使用npm run 命令,就可以执行这段脚本。$ npm run build  等同于执行:$ node build/build.js  同理,上面的那段scripts中, npm run test 等同于 npm run e2e , 等同于 node test/e2e/runner.js  这些定义在package.json里面的脚本,就称为npm脚本。项目的相关脚本,可以集中在一个地方;不同项目的脚本命令,只要功能相同,就可以有同样的对外接口。比如用户不需要知道怎么测试你的项目,只要运行 npm run dev 即可  查看当前项目的所有npm脚本命令,可以使用不带任何参数的 npm run 命令。$ npm run2、npm原理  npm脚本的原理非常简单。每当执行 npm run ,就会自动创建一个shell脚本, 在这个shell里面执行指定的脚本命令。因此,只需要是shell (一般是bash) 可以运行的命令,就可以写在npm脚本里面。  比较特别的是,npm run 新建的这个shell, 会将当前目录的node_modules/.bin 子目录加入PATH 变量,执行结束后,再将PATH变量恢复原样。还意味着,当前目录的node_modules/.bin 子目录里面的所有脚本,都可以直接用脚本名调用,而不必加上路径。比如,当前项目的依赖里面有Mocha, 只要直接写 mocha test 就可以了。"test": "mocha test"  而不用写成下面这样。"test": "./node_modules/.bin/mocha test"  由于npm脚本的唯一要求就是可以在shell中执行,因此它不一定是Node脚本,任何可执行文件都可以写在里面。npm脚本的退出码,也遵守shell脚本规则。如果退出码不是0,npm 就认为这个脚本执行失败。3、通配符  由于npm脚本就是shell脚本,因此可以使用shell通配符。12"lint": "jshint *.js""lint": "jshint **/*.js"  上面代码中,* 表示任意文件名,**表示任意一层子目录。如果要将通配符传入原始命令,防止被shell转义,要将*号转义。"test": "tap test/\*.js"4、传参  向npm脚本传入参数,要使用 -- 标明。"lint": "jshint **.js"  向上面的 npm run lint 命令传入参数,必须写成下面这样。1$ npm run lint -- --reporter checkstyle > checkstyle.xml 也可以再package.json里面封装一个命令。12"lint": "jshint **.js","lint:checkstyle": "npm run lint -- --reporter checkstyle > checkstyle.xml"5、执行顺序  如果npm脚本里面需要执行多个任务,那么需要明确它们的执行顺序。如果是并行执行(即同时的平行执行),可以使用 & 符号。$ npm run script1.js & npm run script2.js  如果是继发执行(即只有前一个任务成功,才能执行下一个任务),可以使用 && 符号。$ npm run script1.js && npm run script2.js6、默认值  一般来说,npm脚本由用户提供。但是,npm对两个脚本提供了默认值。也就是说,这两个脚本不用定义,就可以直接使用。12"start": "node server.js","install": "node-gyp rebuild"  上面代码中,npm run start 的默认值是 node server.js, 前提是项目根目录下有server.js这个脚本;npm run install 的默认值是node-gyp rebuild, 前提是项目根目录下有binding.gyp文件。7、钩子  npm脚本有pre何post两个钩子。举例来说,build脚本命令的钩子就是prebuild和postbuild。123"prebuild": "echo I run before the build script","build": "cross-env NODE_ENV=production webpack","postbuild": "echo I run after the build script"  用户执行npm run build的时候,会自动按照下面的顺序执行。1npm run prebuild && npm run build && npm run postbuild  因此,可以在这两个钩子里面,完成一些准备工作和清理工作。下面是一个例子:123"clean": "rimraf ./dist && mkdir dist","prebuild": "npm run clean","build": "cross-env NODE_ENV=production webpack" npm默认提供下面的这些钩子:12345678prepublish,postpublishpreinstall,postinstallpreuninstall,postuninstallpreversion,postversionpretest,posttestprestop,poststopprestart,poststartprerestart,postrestart  自定义的脚本命令也可以加上pre和post钩子。比如,myscript这个脚本命令,也有premyscript和postmyscript钩子。不过,双重的pre和post无效,比如prepretest和postposttest是无效的。  npm提供一个npm_lifecycle_event变量,返回当前正在运行的脚本命令,比如pretest、test、posttest等等。所以,可以利用这个变量,在同一个脚本文件里面,为不同的npm scripts命令编写代码。请看下面的例子:12345678910111213const TARGET = process.env.npm_lifecycle_event; if (TARGET === 'test') { console.log(`Running the test task!`);} if (TARGET === 'pretest') { console.log(`Running the pretest task!`);} if (TARGET === 'posttest') { console.log(`Running the posttest task!`);}  注意,prepublish这个钩子不仅会在npm publish 命令之前运行,还会在npm install (不带任何参数)命令之前运行。这种行为很容易让用户感到困惑,所以npm 4引入了一个新的钩子prepare, 行为等同于prepublish, 而从npm 5开始,prepublish 将只在npm publish命令之前运行。8、简写形式  四个常用的npm脚本有简写形式。npm start 是 npm run start 的简写 npm stop 是 npm run stop 的简写 npm test 是 npm run test 的简写 npm restart 是 npm run stop && npm run restart && npm run start 的简写  npm start 、npm stop、npm restart都比较好理解,而npm restart 是一个复合命令,实际上会执行三个脚本命令:stop、restart、start 。具体的执行顺序如下:prerestart prestop stop poststop restart prestart start poststart postrestart9、变量  npm脚本有一个非常强大的功能,就是可以使用npm的内部变量。首先,通过npm_package_ 前缀,npm脚本可以拿到package.json里面的字段。比如,下面是一个package.json。1234567{ "name": "foo",  "version": "1.2.5", "scripts": { "view": "node view.js" }}那么,变量npm_package_name返回foo, 变量npm_package_version返回 1.2.5 。123// view.jsconsole.log(process.env.npm_package_name); // fooconsole.log(process.env.npm_package_version); // 1.2.5  上面代码中,我们通过环境变量process.env 对象,拿到package.json 的字段值。如果是bash脚本,可以用$npm_package_name和$npm_package_version娶到这两个值。npm_package_ 前缀也支持嵌套的package.json字段。1234567"repository": {"type": "git","url": "xxx"},scripts: {"view": "echo $npm_package_repository_type"}  上面代码中,repository字段的type属性,可以通过 npm_package_repository_type取到。下面是另外一个例子:123"scripts": { "install": "foo.js"}  上面代码中,npm_package_scripts_install变量的值等于foo.js 。  然后,npm 脚本还可以通过npm_config_ 前缀,拿到npm的配置变量,即npm config get xxx 命令返回的值。比如,当前模块的发行标签,可以通过npm_config_tag取到。"view": "echo $npm_config_tag",  注意,package.json里面的config对象,可以被环境变量覆盖。12345{  "name" : "foo", "config" : { "port" : "8080" }, "scripts" : { "start" : "node server.js" }}  上面代码中,npm_package_config_port 变量返回的是8080。这个值可以用下面的方法覆盖。$ npm config set foo:port 80  最后,env命令可以列出所有环境变量。"env": "env"10、常用脚本示例1234567891011121314151617181920212223242526// 删除目录"clean": "rimraf dist/*", // 本地搭建一个 HTTP 服务"serve": "http-server -p 9090 dist/", // 打开浏览器"open:dev": "opener http://localhost:9090", // 实时刷新 "livereload": "live-reload --port 9091 dist/", // 构建 HTML 文件"build:html": "jade index.jade > dist/index.html", // 只要 CSS 文件有变动,就重新执行构建"watch:css": "watch 'npm run build:css' assets/styles/", // 只要 HTML 文件有变动,就重新执行构建"watch:html": "watch 'npm run build:html' assets/html", // 部署到 Amazon S3"deploy:prod": "s3-cli sync ./dist/ s3://example-com/prod-site/", // 构建 favicon"build:favicon": "node scripts/favicon.js",11、package.json其他配置项说明对于dependencies和devDependencies的一些说明:  使用npm安装依赖时,如果使用--save安装的依赖,会被写到dependencies模块里面去;  而使用--save-dev安装的依赖,则会被写到devDependencies模块里面去;如果什么都不写,则默认安装到dependencies里面去。  比如我们使用的一些构建工具例如glup、webpack这些只在开发环境中才用到的包,则只需要写到devDependencies中即可。  对于两种环境的指定方式,则是通过配置文件中的 process.env.NODE_ENV = 'development' 或 process.env.NODE_ENV = 'production' 来指定是开发还是生产环境。12、package.json中的bin属性  package.json中的bin是命令名和本地文件的映射。如果是全局安装,则会把文件映射到全局的bin里面去,安装后,在任意地方打开终端使用命令行执行该文件;如果是本地安装,则会把文件映射到本项目的./node_modules/.bin文件夹里面,安装后,在本工程目录里面使用命令行执行该文件。  举例说明:新建一个文件夹,打开终端,进入该文件夹,通过命令 npm init -y 创建一个package.json文件。然后在package.json文件同级目录下新建一个index.js文件,加上测试数据。注意,index.js文件的头部必须有这个 #!/usr/bin/env node 节点。在package.json中增加bin属性,设置命令名和index.js的映射关系。在终端当前目录中进行全局安装: npm install -g 安装成功后,则在电脑任意文件夹打开终端,执行package.json中bin中设置的命令,都会执行对应的index.js中的代码。 如下图
  • [知识分享] npm install xxxx --legacy-peer-deps命令是什么?
    本文分享自华为云社区《[npm install xxxx --legacy-peer-deps命令是什么?为什么可以解决下载时候产生的依赖冲突呢?](https://bbs.huaweicloud.com/blogs/349716?utm_source=csdn&utm_medium=bbs-ex&utm_campaign=paas&utm_content=content)》,作者: gentle_zhou 。在日常使用命令npm install / npm install XX下载依赖的操作中,我经常会遇到无法解析依赖树的问题(依赖冲突):!(https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20224/29/1651195648725373976.png)但是每当遇到这种情况的时候,我用命令npm install --legacy-peer-deps就可以顺利进行下载操作:!(https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20224/29/1651195659271721613.png)这是为什么呢?带着好奇心,我去研究学习了一番npm install xxxx --legacy-peer-deps命令是什么?为什么可以解决下载时候产生的依赖冲突呢?(注:我本地当前正在使用的npm版本是8.6.0)**本文导航**:什么是peerDependency?;npm install xxxx --legacy-peer-deps命令是什么?为什么可以解决下载时候产生的依赖冲突呢?;参考资料。# 什么是peerDependency?我们日常在前端项目开发过程中,见到最多的一定是package.json文件里的devDependencies(用于在开发环境下依赖的模块)和dependencies(无论开发环境还是生产环境都需要的依赖模块)这两个字段(感兴趣的小伙伴可以看我这篇文章:(https://bbs.huaweicloud.com/blogs/346736))。那么命令--legacy-peer-dep里的peerDependency是什么依赖呢?根据geeksforgeeks网站里的定义:>Peer Dependencies: In package.json file, there is an object called as peerDependencies and it consists of all the packages that are exactly required in the project or to the person who is downloading and the version numbers should also be the same. That is the reason they were named as peerDependencies. The best example is ‘react’ which is common in every project to run similarly.翻译一下就是说,在package.json文件中,存在一个叫做peerDependencies(对等依赖关系)的对象,它包含了项目里需要的所有的包或则用户正在下载的版本号相同的所有的包(很绕,但意思就是对等依赖关系指定我们的包与某个特定版本的npm包兼容);对等依赖关系最好的例子就是React,一个声明式的创建用户界面的JS库。那么我们为什么需要对等依赖关系呢?假设我们现在有一个HelloHWCloud工程,已经在其根目录下的package.json文件中的dependencies字段里声明了packageA作为依赖,而其下面有两个项目app_A和app_B,它们也依赖packageA。如果我们用dependencies而不是peerDepenedencies来声明,那么npm install安装完项目之后的依赖结构如下图所示: ├── HelloHWCloud │ └── node_modules │ ├── packageA │ ├── app_A │ │ └── nodule_modules │ │ └── packageA │ └── app_B │ │ └── nodule_modules │ │ └── packageA从上图可以看出,packageA依赖包被安装了3次,造成了2次安装冗余。而如果采用peerDepenedency来下载,就可以避免这个核心依赖库被重复下载的问题。还是上面那个场景,我们在项目app_A和app_B的package.json文件里的peerDependencies字段声明一下核心依赖库packageA,然后在根目录的package.json文件里的dependencies字段也声明一下packageA。接着再执行npm install,生成的依赖结构就会如下图所示: ├── HelloHWCloud │ └── node_modules │ ├── packageA │ ├── app_A │ └── app_B如上图所示,packageA就只会被安装一次。因此,npm 从**版本v7**开始,install就默认以peerDependencies的方式去下载了:1. 如果用户在根目录的package.json文件里显式依赖了核心库,那么各个子项目里的peerDepenedencies声明就可以忽略2. 如果用户没有显式依赖核心库,那么就按照子项目的peerDepenedencies中声明的版本将依赖安装到项目根目录里而方式2就会导致一个问题:用户依赖的包版本与各个子项目依赖的包版本相互不兼容,那么就会报错(无法解析依赖树的问题(依赖冲突))让用户自行去修复,因而导致安装过程的中断。(因为是从npm v7引入的,因此npm v3-v6就不会发生这个错误)# npm install xxxx --legacy-peer-deps命令是什么?为什么可以解决下载时候产生的依赖冲突呢?npm install xxxx --legacy-peer-deps命令与其说是告诉npm要去干什么,不如说是告诉npm不要去干什么。legacy的意思:遗产/(软件或硬件)已过时但因使用范围广而难以替代的;而npm install xxxx --legacy-peer-deps命令用于绕过peerDependency里依赖的自动安装;它告诉npm忽略项目中引入的各个依赖模块之间依赖相同但版本不同的问题,以npm v3-v6的方式去继续执行安装操作。所以其实该命令并没有真的解决冲突,而是忽略了冲突,以“过时”(v3-v6)的方式进行下载操作。# 参考资料1. https://classic.yarnpkg.com/en/docs/dependency-types2. https://github.blog/2021-02-02-npm-7-is-now-generally-available/3. https://blog.logrocket.com/whats-new-in-npm-v7/4. https://stackoverflow.com/questions/66239691/what-does-npm-install-legacy-peer-deps-do-exactly-when-is-it-recommended-wh
  • [GDE Link] Gde-link 初始化自定义布局的时候 npm报错问题
    当 Gde-link自定义布局的时候检查npm仓库配置no-proxy=.huawei.comregistry=http://cmc.centralrepo.rnd.huawei.com/npm/@adc:registry=http://npm.cloudartifact.szv.dragon.tools.huawei.com/artifactory/api/npm/npm-adc-release报错 百度尝试了,很多方法,改成淘宝的也不行。不知道,哪里出错了。目前进展不下去了。
  • [问题求助] 【Apache zeppelin-0.10.0】【鲲鹏编译】npm install --no-lockfile 失败
    【功能模块】【Apache zeppelin-0.10.0】【Zeppelin: web Application】【鲲鹏编译】【操作步骤&问题现象】0.操作环境mvn git npm 均做了代理,但不知道为什么 执行npm命令就失败了1、操作步骤mvn clean package -Pspark-2.4 -Pspark-scala-2.12 -Phadoop2    -DskipTests 2.问题现象Failed to execute goal com.github.eirslett:frontend-maven-plugin:1.6:npm (npm install) on project zeppelin-web: Failed to run task: 'npm install --no-lockfile --https-proxy=http://proxyuser:***@192.168.1.216:808 --proxy=http://proxyuser:***@192.168.1.216:808' failed. org.apache.commons.exec.ExecuteException: Process exited with an error: 1 (Exit value: 1) -> [Help 1]3、错误日志 Zeppelin: Client Examples .......................... SUCCESS [  0.934 s] Zeppelin: web Application .......................... FAILURE [01:59 min] Zeppelin: Server ................................... SKIPPED Zeppelin: Plugins Parent ........................... SKIPPED Zeppelin: Plugin S3NotebookRepo .................... SKIPPED Zeppelin: Plugin GitHubNotebookRepo ................ SKIPPED Zeppelin: Plugin AzureNotebookRepo ................. SKIPPED Zeppelin: Plugin GCSNotebookRepo ................... SKIPPED Zeppelin: Plugin ZeppelinHubRepo ................... SKIPPED Zeppelin: Plugin FileSystemNotebookRepo ............ SKIPPED Zeppelin: Plugin MongoNotebookRepo ................. SKIPPED Zeppelin: Plugin OSSNotebookRepo ................... SKIPPED Zeppelin: Plugin Kubernetes StandardLauncher ....... SKIPPED Zeppelin: Plugin Flink Launcher .................... SKIPPED Zeppelin: Plugin Docker Launcher ................... SKIPPED Zeppelin: Plugin Cluster Launcher .................. SKIPPED Zeppelin: Plugin Yarn Launcher ..................... SKIPPED Zeppelin: Packaging distribution ................... SKIPPED ------------------------------------------------------------------------ BUILD FAILURE ------------------------------------------------------------------------ Total time:  16:36 min Finished at: 2022-01-17T17:37:40+08:00 ------------------------------------------------------------------------[ERROR] Failed to execute goal com.github.eirslett:frontend-maven-plugin:1.6:npm (npm install) on project zeppelin-web: Failed to run task: 'npm install --no-lockfile --https-proxy=http://proxyuser:***@192.168.1.216:808 --proxy=http://proxyuser:***@192.168.1.216:808' failed. org.apache.commons.exec.ExecuteException: Process exited with an error: 1 (Exit value: 1) -> [Help 1][ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.[ERROR] Re-run Maven using the -X switch to enable full debug logging.[ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles:[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException[ERROR] [ERROR] After correcting the problems, you can resume the build with the command[ERROR]   mvn <args> -rf :zeppelin-web【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [问题求助] 【ApacheFlink1.14产品】【鲲鹏编译】Flink : Runtime web :npm run build 失败
    【功能模块】【ApacheFlink1.14产品】【鲲鹏编译】Flink : Runtime web   模块【操作步骤&问题现象】0.公司环境maven、git、npm已经配置代理1、操作步骤cd ./flink-release-1.14.0mvn install -DskipTests -Dtar -Dhadoop.version=2.9.2问题现象:Flink 1.11-Flink 1.13 编译均可通过,但flink-release-1.14.0编译报如下错误,请帮忙提示如何排查问题 BUILD FAILURE ------------------------------------------------------------------------ Total time:  09:03 min Finished at: 2022-01-18T10:24:24+08:00 ------------------------------------------------------------------------[ERROR] Failed to execute goal com.github.eirslett:frontend-maven-plugin:1.9.1:npm (npm run build) on project flink-runtime-web_2.11: Failed to run task: 'npm run build --https-proxy=http://proxyuser:***@192.168.1.216:808 --proxy=http://proxyuser:***@192.168.1.216:808' failed. org.apache.commons.exec.ExecuteException: Process exited with an error: 139 (Exit value: 139) -> [Help 1][ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.[ERROR] Re-run Maven using the -X switch to enable full debug logging.[ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles:[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException[ERROR] [ERROR] After correcting the problems, you can resume the build with the command[ERROR]   mvn <args> -rf :flink-runtime-web_2.11[root@hadoop47 flink-release-1.14.0]# 【截图信息】【日志信息】(可选,上传日志内容或者附件) Reactor Summary for Flink : 1.14.0:  Flink : ............................................ SUCCESS [  9.170 s] Flink : Annotations ................................ SUCCESS [  3.712 s] Flink : Test utils : ............................... SUCCESS [  0.254 s] Flink : Test utils : Junit ......................... SUCCESS [  2.810 s] Flink : Metrics : .................................. SUCCESS [  0.757 s] Flink : Metrics : Core ............................. SUCCESS [  2.321 s] Flink : Core ....................................... SUCCESS [ 46.265 s] Flink : Java ....................................... SUCCESS [ 10.641 s] Flink : Scala ...................................... SUCCESS [ 59.810 s] Flink : FileSystems : .............................. SUCCESS [  0.205 s] Flink : FileSystems : Hadoop FS .................... SUCCESS [  5.587 s] Flink : FileSystems : Mapr FS ...................... SUCCESS [  1.450 s] Flink : FileSystems : Hadoop FS shaded ............. SUCCESS [  6.972 s] Flink : FileSystems : S3 FS Base ................... SUCCESS [  2.117 s] Flink : FileSystems : S3 FS Hadoop ................. SUCCESS [  8.153 s] Flink : FileSystems : S3 FS Presto ................. SUCCESS [ 19.771 s] Flink : FileSystems : OSS FS ....................... SUCCESS [ 10.126 s] Flink : FileSystems : Azure FS Hadoop .............. SUCCESS [ 19.434 s] Flink : RPC : ...................................... SUCCESS [  0.220 s] Flink : RPC : Core ................................. SUCCESS [  1.015 s] Flink : RPC : Akka ................................. SUCCESS [  6.513 s] Flink : RPC : Akka-Loader .......................... SUCCESS [  3.778 s] Flink : Queryable state : .......................... SUCCESS [  0.176 s] Flink : Queryable state : Client Java .............. SUCCESS [  1.452 s] Flink : Runtime .................................... SUCCESS [01:34 min] Flink : Optimizer .................................. SUCCESS [  7.665 s] Flink : Connectors : ............................... SUCCESS [  0.188 s] Flink : Connectors : File Sink Common .............. SUCCESS [  0.638 s] Flink : Streaming Java ............................. SUCCESS [ 32.015 s] Flink : Clients .................................... SUCCESS [  5.411 s] Flink : DSTL ....................................... SUCCESS [  0.233 s] Flink : DSTL : DFS ................................. SUCCESS [  1.229 s] Flink : State backends : ........................... SUCCESS [  0.185 s] Flink : State backends : RocksDB ................... SUCCESS [  3.520 s] Flink : State backends : Changelog ................. SUCCESS [  1.414 s] Flink : Test utils : Utils ......................... SUCCESS [  3.180 s] Flink : Runtime web ................................ FAILURE [02:48 min] Flink : Test utils : Connectors .................... SKIPPED Flink : Connectors : Base .......................... SKIPPED Flink : Connectors : Files ......................... SKIPPED Flink : Examples : ................................. SKIPPED Flink : Examples : Batch ........................... SKIPPED Flink : Connectors : Hadoop compatibility .......... SKIPPED Flink : Tests ...................................... SKIPPED Flink : Streaming Scala ............................ SKIPPED Flink : Connectors : HCatalog ...................... SKIPPED Flink : Table : .................................... SKIPPED Flink : Table : Common ............................. SKIPPED Flink : Table : API Java ........................... SKIPPED Flink : Table : API Java bridge .................... SKIPPED Flink : Formats : .................................. SKIPPED Flink : Format : Common ............................ SKIPPED Flink : Table : API Scala .......................... SKIPPED Flink : Table : API Scala bridge ................... SKIPPED Flink : Table : SQL Parser ......................... SKIPPED Flink : Table : SQL Parser Hive .................... SKIPPED Flink : Table : Code Splitter ...................... SKIPPED Flink : Libraries : ................................ SKIPPED Flink : Libraries : CEP ............................ SKIPPED Flink : Table : Runtime ............................ SKIPPED Flink : Table : Planner ............................ SKIPPED Flink : Formats : Json ............................. SKIPPED Flink : Connectors : Elasticsearch base ............ SKIPPED Flink : Connectors : Elasticsearch 5 ............... SKIPPED Flink : Connectors : Elasticsearch 6 ............... SKIPPED Flink : Connectors : Elasticsearch 7 ............... SKIPPED Flink : Connectors : HBase base .................... SKIPPED Flink : Connectors : HBase 1.4 ..................... SKIPPED Flink : Connectors : HBase 2.2 ..................... SKIPPED Flink : Formats : Hadoop bulk ...................... SKIPPED Flink : Formats : Orc .............................. SKIPPED Flink : Formats : Orc nohive ....................... SKIPPED Flink : Formats : Avro ............................. SKIPPED Flink : Formats : Parquet .......................... SKIPPED Flink : Formats : Csv .............................. SKIPPED Flink : Connectors : Hive .......................... SKIPPED Flink : Connectors : JDBC .......................... SKIPPED Flink : Connectors : RabbitMQ ...................... SKIPPED Flink : Connectors : Twitter ....................... SKIPPED Flink : Connectors : Nifi .......................... SKIPPED Flink : Connectors : Cassandra ..................... SKIPPED Flink : Metrics : JMX .............................. SKIPPED Flink : Formats : Avro confluent registry .......... SKIPPED Flink : Test utils : Testing Framework ............. SKIPPED Flink : Connectors : Kafka ......................... SKIPPED Flink : Connectors : Google PubSub ................. SKIPPED Flink : Connectors : Kinesis ....................... SKIPPED Flink : Connectors : Pulsar ........................ SKIPPED Flink : Connectors : SQL : Elasticsearch 6 ......... SKIPPED Flink : Connectors : SQL : Elasticsearch 7 ......... SKIPPED Flink : Connectors : SQL : HBase 1.4 ............... SKIPPED Flink : Connectors : SQL : HBase 2.2 ............... SKIPPED Flink : Connectors : SQL : Hive 1.2.2 .............. SKIPPED Flink : Connectors : SQL : Hive 2.2.0 .............. SKIPPED Flink : Connectors : SQL : Hive 2.3.6 .............. SKIPPED Flink : Connectors : SQL : Hive 3.1.2 .............. SKIPPED Flink : Connectors : SQL : Kafka ................... SKIPPED Flink : Connectors : SQL : Kinesis ................. SKIPPED Flink : Formats : Sequence file .................... SKIPPED Flink : Formats : Compress ......................... SKIPPED Flink : Formats : Avro AWS Glue Schema Registry .... SKIPPED Flink : Formats : SQL Orc .......................... SKIPPED Flink : Formats : SQL Parquet ...................... SKIPPED Flink : Formats : SQL Avro ......................... SKIPPED Flink : Formats : SQL Avro Confluent Registry ...... SKIPPED Flink : Examples : Streaming ....................... SKIPPED Flink : Examples : Table ........................... SKIPPED Flink : Examples : Build Helper : .................. SKIPPED Flink : Examples : Build Helper : Streaming Twitter  SKIPPED Flink : Examples : Build Helper : Streaming State machine SKIPPED Flink : Examples : Build Helper : Streaming Google PubSub SKIPPED Flink : Container .................................. SKIPPED Flink : Queryable state : Runtime .................. SKIPPED Flink : Kubernetes ................................. SKIPPED Flink : Yarn ....................................... SKIPPED Flink : Libraries : Gelly .......................... SKIPPED Flink : Libraries : Gelly scala .................... SKIPPED Flink : Libraries : Gelly Examples ................. SKIPPED Flink : External resources : ....................... SKIPPED Flink : External resources : GPU ................... SKIPPED Flink : Metrics : Dropwizard ....................... SKIPPED Flink : Metrics : Graphite ......................... SKIPPED Flink : Metrics : InfluxDB ......................... SKIPPED Flink : Metrics : Prometheus ....................... SKIPPED Flink : Metrics : StatsD ........................... SKIPPED Flink : Metrics : Datadog .......................... SKIPPED Flink : Metrics : Slf4j ............................ SKIPPED Flink : Libraries : CEP Scala ...................... SKIPPED Flink : Table : Uber ............................... SKIPPED Flink : Python ..................................... SKIPPED Flink : Table : SQL Client ......................... SKIPPED Flink : Libraries : State processor API ............ SKIPPED Flink : Scala shell ................................ SKIPPED Flink : Dist ....................................... SKIPPED Flink : Yarn Tests ................................. SKIPPED Flink : E2E Tests : ................................ SKIPPED Flink : E2E Tests : CLI ............................ SKIPPED Flink : E2E Tests : Parent Child classloading program SKIPPED Flink : E2E Tests : Parent Child classloading lib-package SKIPPED Flink : E2E Tests : Dataset allround ............... SKIPPED Flink : E2E Tests : Dataset Fine-grained recovery .. SKIPPED Flink : E2E Tests : Datastream allround ............ SKIPPED Flink : E2E Tests : Batch SQL ...................... SKIPPED Flink : E2E Tests : Stream SQL ..................... SKIPPED Flink : E2E Tests : Distributed cache via blob ..... SKIPPED Flink : E2E Tests : High parallelism iterations .... SKIPPED Flink : E2E Tests : Stream stateful job upgrade .... SKIPPED Flink : E2E Tests : Queryable state ................ SKIPPED Flink : E2E Tests : Local recovery and allocation .. SKIPPED Flink : E2E Tests : Elasticsearch 5 ................ SKIPPED Flink : E2E Tests : Elasticsearch 6 ................ SKIPPED Flink : Quickstart : ............................... SKIPPED Flink : Quickstart : Java .......................... SKIPPED Flink : Quickstart : Scala ......................... SKIPPED Flink : E2E Tests : Quickstart ..................... SKIPPED Flink : E2E Tests : Confluent schema registry ...... SKIPPED Flink : E2E Tests : Stream state TTL ............... SKIPPED Flink : E2E Tests : SQL client ..................... SKIPPED Flink : E2E Tests : File sink ...................... SKIPPED Flink : E2E Tests : State evolution ................ SKIPPED Flink : E2E Tests : RocksDB state memory control ... SKIPPED Flink : E2E Tests : Common ......................... SKIPPED Flink : E2E Tests : Metrics availability ........... SKIPPED Flink : E2E Tests : Metrics reporter prometheus .... SKIPPED Flink : E2E Tests : Heavy deployment ............... SKIPPED Flink : E2E Tests : Connectors : Google PubSub ..... SKIPPED Flink : E2E Tests : Streaming Kafka base ........... SKIPPED Flink : E2E Tests : Streaming Kafka ................ SKIPPED Flink : E2E Tests : Plugins : ...................... SKIPPED Flink : E2E Tests : Plugins : Dummy fs ............. SKIPPED Flink : E2E Tests : Plugins : Another dummy fs ..... SKIPPED Flink : E2E Tests : TPCH ........................... SKIPPED Flink : E2E Tests : Streaming Kinesis .............. SKIPPED Flink : E2E Tests : Elasticsearch 7 ................ SKIPPED Flink : E2E Tests : Common Kafka ................... SKIPPED Flink : E2E Tests : TPCDS .......................... SKIPPED Flink : E2E Tests : Netty shuffle memory control ... SKIPPED Flink : E2E Tests : Python ......................... SKIPPED Flink : E2E Tests : HBase .......................... SKIPPED Flink : E2E Tests : AWS Glue Schema Registry ....... SKIPPED Flink : E2E Tests : Pulsar ......................... SKIPPED Flink : State backends : Heap spillable ............ SKIPPED Flink : Contrib : .................................. SKIPPED Flink : Contrib : Connectors : Wikiedits ........... SKIPPED Flink : FileSystems : Tests ........................ SKIPPED Flink : Docs ....................................... SKIPPED Flink : Walkthrough : .............................. SKIPPED Flink : Walkthrough : Common ....................... SKIPPED Flink : Walkthrough : Datastream Java .............. SKIPPED Flink : Walkthrough : Datastream Scala ............. SKIPPED Flink : Tools : CI : Java .......................... SKIPPED ------------------------------------------------------------------------ BUILD FAILURE ------------------------------------------------------------------------ Total time:  09:03 min Finished at: 2022-01-18T10:24:24+08:00 ------------------------------------------------------------------------[ERROR] Failed to execute goal com.github.eirslett:frontend-maven-plugin:1.9.1:npm (npm run build) on project flink-runtime-web_2.11: Failed to run task: 'npm run build --https-proxy=http://proxyuser:***@192.168.1.216:808 --proxy=http://proxyuser:***@192.168.1.216:808' failed. org.apache.commons.exec.ExecuteException: Process exited with an error: 139 (Exit value: 139) -> [Help 1][ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.[ERROR] Re-run Maven using the -X switch to enable full debug logging.[ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles:[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException[ERROR] [ERROR] After correcting the problems, you can resume the build with the command[ERROR]   mvn <args> -rf :flink-runtime-web_2.11npm 配置[root@hadoop47 flink-release-1.14.0]# npm config ls -l; cli configslong = truemetrics-registry = "https://registry.npm.taobao.org/"scope = ""user-agent = "npm/6.13.4 node/v12.14.1 linux arm64"; userconfig /root/.npmrcproxy = "http://192.168.1.216:808/"registry = "https://registry.npm.taobao.org/"unsafe-perm = true; default valuesaccess = nullallow-same-version = falsealso = nullalways-auth = falseaudit = trueaudit-level = "low"auth-type = "legacy"before = nullbin-links = truebrowser = nullca = nullcache = "/root/.npm"cache-lock-retries = 10cache-lock-stale = 60000cache-lock-wait = 10000cache-max = nullcache-min = 10cafile = undefinedcert = nullcidr = nullcolor = truecommit-hooks = truedepth = nulldescription = truedev = falsedry-run = falseeditor = "vi"engine-strict = falsefetch-retries = 2fetch-retry-factor = 10fetch-retry-maxtimeout = 60000fetch-retry-mintimeout = 10000force = falseformat-package-lock = truefund = truegit = "git"git-tag-version = trueglobal = falseglobal-style = falseglobalconfig = "/opt/tools/installed/node-v12.14.1-linux-arm64/etc/npmrc"globalignorefile = "/opt/tools/installed/node-v12.14.1-linux-arm64/etc/npmignore"group = 0ham-it-up = falseheading = "npm"https-proxy = nullif-present = falseignore-prepublish = falseignore-scripts = falseinit-author-email = ""init-author-name = ""init-author-url = ""init-license = "ISC"init-module = "/root/.npm-init.js"init-version = "1.0.0"json = falsekey = nulllegacy-bundling = falselink = falselocal-address = undefinedloglevel = "notice"logs-max = 10; long = false (overridden)maxsockets = 50message = "%s"; metrics-registry = null (overridden)node-options = nullnode-version = "12.14.1"noproxy = nulloffline = falseonload-script = nullonly = nulloptional = trueotp = nullpackage-lock = truepackage-lock-only = falseparseable = falseprefer-offline = falseprefer-online = falseprefix = "/opt/tools/installed/node-v12.14.1-linux-arm64"preid = ""production = falseprogress = true; proxy = null (overridden)read-only = falserebuild-bundle = true; registry = "https://registry.npmjs.org/" (overridden)rollback = truesave = truesave-bundle = falsesave-dev = falsesave-exact = falsesave-optional = falsesave-prefix = "^"save-prod = falsescope = ""script-shell = nullscripts-prepend-node-path = "warn-only"searchexclude = nullsearchlimit = 20searchopts = ""searchstaleness = 900send-metrics = falseshell = "/bin/bash"shrinkwrap = truesign-git-commit = falsesign-git-tag = falsesso-poll-frequency = 500sso-type = "oauth"strict-ssl = truetag = "latest"tag-version-prefix = "v"timing = falsetmp = "/tmp"umask = 18unicode = true; unsafe-perm = false (overridden)update-notifier = trueusage = falseuser = 1000; user-agent = "npm/{npm-version} node/{node-version} {platform} {arch} {ci}" (overridden)userconfig = "/root/.npmrc"version = falseversions = falseviewer = "man"
  • [Node.js] 带你了解Node.js包管理工具:包与NPM
    >摘要:包与NPM Node组织了自身的核心模块,也使得第三方文件模块可以有序的编写和使用。本文分享自华为云社区[《NodeJs深入浅出之旅:包与NPM》](https://bbs.huaweicloud.com/blogs/307034?utm_source=zhihu&utm_medium=bbs-ex&utm_campaign=other&utm_content=content),作者:空城机。# 包与NPMNode组织了自身的核心模块,也使得第三方文件模块可以有序的编写和使用。但是在第三方模块中,模块与模块之间仍然是散列在各地的,**相互之间不能直接引用**所以在模块外,包和NPM是将模块联系起来的机制。- 包组织模块示意图!(https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202111/27/141323rxr3v28syu8prqok.png)CommonJS 的包规范定义其实也很简单,由包结构和包描述文件两部分组成。# 包结构用于组织包中的各种文件,是一个存档文件,即一个目录直接打包为.zip或tar.gz格式的文件。符合规范的包目录:- package.json: 包描述文件- bin: 用于存放可执行二进制文件的目录- lib: 用于存放JavaScript代码的目录- doc: 用于存放文档的目录- test: 用于存放单元测试用例的代码# package.json包描述文件NPM所有行为都与包描述文件的字段息息相关一些字段:- name: 包名。 规范定义需要用小写的字母和数字组成,不允许出现空格。 包名必须是唯一的,以免对外公布时产生重名冲突- description: 包简介- version: 版本号,关于其介绍在《Node.js学习(一)——简介》也有提及- keywords: 关键字数组, NPM中主要用来作分类搜索。- maintainers: 包维护者列表。 每个维护者由name、email和web这3个属性组成。 NPM通过这个属性进行权限认证。格式:```"maintainers":[{ "name":"kongchengji", "email":"111@.com", "web":"[http:](https://blog.csdn.net/qq_36171287)" }]```- contributors: 贡献者列表,格式与维护者列表相同- bugs: 一个可以反馈bug的网页地址或邮件地址- licenses: 当前包所使用的许可证列表,表示包在哪些许可证下使用格式: "licenses":[{ "type": "GPLv2", "url":"" }] // 或者 "license": "ISC"- repositories: 托管源代码的位置列表,表明可以通过哪些方式和地址访问包源代码。- 格式:- "repository": {- "type": "git",- "url": "git+https://github.com/kongchengji/UiSelfMade.git"- },- dependencies: 使用当前包所需要依赖的包列表。 这个属性非常重要- homepage: 当前包的网站地址- os: 操作系统支持列表, 如果列表为空,则不对操作系统做任何假设- cpi: CPU架构支持列表- engine:支持的JavaScript引擎列表- directories:包目录说明- implements: 实施规范的列表。 标志当前包实现了CommonJS哪些规范- scripts: 脚本说明对象。 主要用于被包管理器用来安装、编译、测试和卸载包 "scripts": { "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js", "start": "npm run dev", "lint": "eslint --ext .js,.vue src", "build": "node build/build.js" },NPM与包规范区别在于多了四个字段:- author: 包作者 :ok_man:- bin: 一些包作者希望包可以作为命令行工具使用。- main: 模块引入包时,会有限检查这个字段,并将其作为包中其余模块的入口模块。 如果不存在,require会查找包目录下的index.js、index.node、index.json作为默认入口- devDependencies: 一些模块只在开发时需要依赖。devDependencies:开发环境使用dependencies:生产环境使用# 前后端共用模块JavaScript在Node出现后,有一项优势 --> 一些模块可以在前后端实现共用。但是前后端上始终还是有一些差别的 :sweat_drops:# 前后端模块侧重点前后端JavaScript分别搁置在HTPP的两端,扮演的角色并不同。浏览器端的JavaScript需要经历从同一个服务器端分发到多个客户端执行,瓶颈是带宽,从网络加载代码服务器端的JavaScript是相同代码需要多次执行,瓶颈是CPU和内存等资源,从磁盘中加载在前端JavaScript中,主要还是应用**AMD规范**。CommonJS并不完全适用于前端JavaScript,比如Node的模块引入基本是同步的,但是前端引入如果使用同步引入,UI在初始化过程中需要花费很多时间等待脚本加载完成。# AMD规范AMD规范 是CommonJS规范的一个延伸,全称:Asynchronous Module Definition。是异步模块定义模块定义:define(id?, dependencies?, factory);id 是模块的名字,它是可选的参数。dependencies 指定了所要依赖的模块列表,它是一个数组,也是可选的参数AMD需要在声明模块时指定所有的依赖,通过形参传递依赖到模块内容中: define(['./a', './b'], function (dep1, dep2) { a.doSomethimg() b.doSomething() });# CMD规范与AMD规范相对的还有CMD规范,全称:Common Module Definition。是公共模块定义这是由国内的玉伯(也是一位大佬)提出的模块定义:define(factory)CMD支持动态引入: define(function(require, exports, module) { var a=require('./a') a.doSomethimg() var b=require('./b') b.doSomething() })在需要依赖模块时, 随时调用require()引入即可CMD 推崇依赖就近; AMD 推崇依赖前置CMD 是延迟执行; AMD 是提前执行CMD性能好,因为只有用户需要的时候才执行; AMD用户体验好,因为没有延迟,依赖模块提前执行了AMD和CMD最大的区别是对依赖模块的执行时机处理不同# 兼容多种模块规范创建一个hello方法,让hello方法能在不同运行环境中运行,兼容Node、AMD、CMD和常见浏览器匿名函数前加一个;是个好习惯 name是方法名,definition是方法体通过typeof检测环境是否为AMD或CMD还是Node环境可以将模块执行结果挂载在window变量中,这样可以直接调用 // 匿名函数前加一个;是个好习惯 name是方法名,definition是方法体 ;(function (name, definition) { //检查环境是否是AMD或CMD var hasDefine = typeof define === 'function', // 检查环境是否为Node hasExports = typeof module !== 'undefined' && mudule.exports; if(hasDefine) { define(definition); } else if (hasExports) { module.exports = definition(); } else { // 将模块的执行结果挂在window变量中,在浏览器中this指向window对象 this[name] = definition(); } })('hello', function () { var hello = function () { console.log('hello'); } return hello; });
  • [Node.js] npm install windows-build-tools 卡住不动,安装脚本自带bug?
    本文借鉴于CSDN博主「FencingMan-X」,向博主致敬!原文链接:https://blog.csdn.net/oqzuser1234asd/article/details/116169889## 1、问题描述通过npm install windows-build-tools来获取Python2.7环境时,windows-build-tools不能正常完成安装。## 2、问题现象执行npm install --global --production windows-build-tools 卡在reify:ajv这个步骤页面不动了!(https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202111/26/162118ts5sdazepbjewv9j.png)## 3、问题原因Windows-build-tools脚本存在问题,无法找到VS构建工具安装程序的日志文件。似乎VS构建工具安装程序创建的日志文件已更改。该脚本正在文件夹%USERPROFILE%\ AppData \ Local \ Temp中寻找名称以dd_client_开头的日志文件,但是VS构建工具安装程序似乎并未创建任何以dd_client_开头的文件。(这是windows-build-tools安装脚本的一个BUG,感兴趣可以查看github的issue:https://github.com/felixrieseberg/windows-build-tools/issues/244 )## 4、解决方案1、打开资源管理器(左下角搜索-资源管理器或者直接window+E),在路径处输入`%temp%`!(https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202111/26/1624238npxgdvhhxaneopn.png)2、在`%temp%`文件夹中找到最新的文件名类似于`dd_installer_20211126145101.log`的文件,查看此文件,确保日志中输出了`Closing the installer with exit code 0`!(https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202111/26/162725ebzcg9iytjuksanc.png)3、在`%temp%`目录下创建一个名为`dd_client_.log`的文件!(https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202111/26/162803fe8slef4aadwrio4.png)4、编辑创建的文件,加入一行`Closing installer. Return code: 3010.`然后保存。!(https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202111/26/1628553ucgb4o2myf9kfal.png)5、回到执行安装命令的窗口,敲一下回车,即会继续安装windows-build-tools的步骤。!(https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202111/26/162931zhl0hcczsyq3h8e7.png)6、安装成功后,新打开一个终端窗口,检查Python版本!(https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202111/26/163011v64vnvvveh7dyxrj.png)## 后语其实Python环境在安装步骤卡着不动时就已经安装好了,只是环境变量没有配置好。* 下面是我在安装途中卡住的时候的截图:>!(https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202111/26/163048dj2vdvzniyvbzfrv.png)* Python所在文件位置>!(https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202111/26/163112xiho5iyekad1l2x1.png)
总条数:33 到第
上滑加载中