提问者:小点点

自定义绑定节点安装在其他PC上不起作用


2017年10月13日-自答,见下文,问题已解决

2017年10月13日-新增更新,见问题末尾,仍未解决

先说明问题,后说明问题:

我们的团队使用一个准备好的开发环境,我想添加构建Liferay dxp主题所需的节点组件。

我已经从Win64-Zip-Installation安装了节点,所以我只是将其解压缩到自定义目录(win10)。

我已经设置了环境变量并创建了. npmrc,前缀(npm-包)和缓存(npm-缓存)也驻留在上面提到的自定义目录中。

我已经通过npm安装了额外的所需组件(大口,哟,生成器-生成主题,生成主题-任务,生成主题-deps-7.0,所有与-g)

所以我的全局安装看起来像这样

custom directory
               |
               +--- node-v6.11.4-win-x64
               |
               +--- npm-cache
               |
               +--- npm-packages

设置了环境变量

NODE_PATH=(custom directory)\node-v6.11.4-win-x64;(custom directory)\npm-packages\node_modules
NPM_PACKAGES=(custom directory)\npm-packages

包括路径

Path=...;(custom directory)\node-v6.11.4-win-x64;(custom directory)\npm-packages

还有。npmrc就像

prefix=(custom directory)\npm-packages
cache=(custom directory)\npm-cache
proxy=(our proxy)
registry=http://registry.npmjs.org/
fetch-retry-mintimeout=1000
fetch-retry-maxtimeout=3000
strict-ssl=false

在我的机器上构建Liferay DXP主题-WOMM

当我压缩完整的自定义文件夹并在另一台开发人员机器上解压缩它(并在另一台机器上设置环境变量和. npmrc)时,构建不起作用。

错误消息(maven antrun exec gulp.cmd)为

[exec] Error: Cannot find module '(project directory)\node_modules\gulp\bin\gulp.js'

其中“(项目目录)”是我的DXP主题源文件夹,而不是上面提到的自定义安装文件夹。

其他命令在另一台机器上显示没有问题,例如

node -v
npm -v
npm cache ls

也是

npm install -g yo gulp

快速完成,没有显示错误。

使现代化

昨天的一次尝试是打电话

npm install -g yo gulp

在另一台机器上,这应该是zipfile内容的唯一区别。

那个电话

npm list -g

在另一台机器上显示这些差异

1099a1100
>   +-- is-installed-globally@0.1.0 extraneous
1222a1224,1226
>   | +-- chalk@2.1.0 invalid
>   | | +-- ansi-styles@3.2.0 extraneous
>   | | `-- supports-color@4.4.0 extraneous

无效条目是yo的子项。更新通知程序

下次在另一台机器上试试

npm uninstall -g yo
npm cache clear
npm install -g yo

我的机器和另一台机器之间的新差异

1211c1211
<   +-- update-notifier@2.2.0
---
>   +-- update-notifier@2.3.0
1222a1223,1225
>   | +-- chalk@2.1.0
>   | | +-- ansi-styles@3.2.0
>   | | `-- supports-color@4.4.0
1223a1227,1230
>   | +-- is-installed-globally@0.1.0
>   | | +-- global-dirs@0.1.0
>   | | `-- is-path-inside@1.0.0
>   | |   `-- path-is-inside@1.0.2
1257c1264
<   | +-- diff@3.3.1
---
>   | +-- diff@3.4.0

但是另一台机器上的构建仍然抛出相同的错误。


共2个答案

匿名用户

你确定你对开发需求有兴趣吗?

尝试-npm安装gulp——保存开发

匿名用户

自我回答,一些maven/antrun/jdk魔法——我应该多次把头撞到墙上。

当我开始在同事的机器上测试时,他提到“我在jdk6上,因为我正在开发这个和那个”

“没问题,”我说,“这不是java”。

但这就是问题所在。切换到jdk8使构建在同事的机器上工作。

也许我应该在没有maven的情况下测试命令行构建,只是在提示符下“gulpbuild”,因为我猜jdk问题与maven有关-

记住使用jdk6时的错误:

[exec] Error: Cannot find module '(project directory)\node_modules\gulp\bin\gulp.js'

小结

您可以设置一个包含全局节点安装的zipfile,并在其他机器上使用它,只是别忘了

  • 不要使用旧java
  • 设置环境变量和。npmrc内容以匹配您正在使用的目录

示例

  • zip包含一个解压缩的节点安装(例如来自nodejs的win64 zip)
  • zip包含节点包和节点缓存
  • 解压缩到c:\global节点
  • setNODE_PATH=c:\global-节点\node-v6.11.4-win-x64; c:\global-节点\npm-包\node_modules
  • 设置NPM_PACKAGES=c:\global-节点\npm-包
  • 使用"; c:\global-节点\node-v6.11.4-win-x64; c:\global-节点\npm-包"设置/扩展路径
  • 你的~/. npmrc需要一个入口前缀=c:\global-节点\npm-包
  • 和一个条目缓存=c:\global-节点\npm-缓存

您已经完成了可重用的全局压缩节点安装。

相关问题