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
但是另一台机器上的构建仍然抛出相同的错误。
你确定你对开发需求有兴趣吗?
尝试-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,并在其他机器上使用它,只是别忘了
示例
您已经完成了可重用的全局压缩节点安装。