tom*_*umb 4 vmware node.js npm gruntjs
我正在尝试整合开发环境,而npm正在给我带来麻烦.这是我的场景:
我有一台运行Windows和VMWare Player的开发机器.我有一个配置了Apache,PHP,NodeJS等的Ubuntu Server VM(没有UI).由于VM没有UI,我想使用主机OS进行开发.我设置了一个共享目录,该目录在VM中作为/ mnt/hgfs/source/<项目名称>进行访问.
当我尝试npm install在此目录中运行时出现问题.我看到很多错误Error: UNKNOWN, symlink '../requirejs/bin/r.js'.我知道我的package.json文件没问题,因为如果我将所有文件从共享中复制到常规的unix目录(/ var/www/<项目名称>),则npm install可以正常工作.所以npm在共享目录中安装模块时遇到问题.
我想我可以通过全局安装节点包来解决这个问题,但无论出于何种原因,GruntJS爱好者不喜欢这样,它必须在本地存在.然后我尝试创建一个从全局到本地的npm链接,但这只会导致一个新的错误:Error: May not delete: /usr/lib/node_modules/grunt.我对/ usr/lib/node_modules目录和所有子目录拥有完全权限.
我真的不想在VM中使用命令行文本编辑器编写整个项目,但看起来我不能将我的代码库放在主机和客户操作系统通过VMWare可用的目录中.
我非常感谢有关如何1)允许在我的共享目录中安装npm模块,2)全局运行Grunt,或3)解决我看到的npm链接错误的任何建议.
编辑:发布后不久,我意识到这里的根本问题 - 当主机操作系统是Windows时,无法在VM共享目录中创建符号链接.由于npm install默认情况下使用符号链接,因此它不起作用,这就是接受的解决方案确实有效的原因.
请尝试以下方法:
npm install --no-bin-links
Run Code Online (Sandbox Code Playgroud)
从插件开始,Grunt应该是本地的,并且gruntfile.js可能需要某个版本的Grunt才能运行您的任务.如果另一个开发人员想要运行您的任务,他们可以发布一个npm install并设置它们.(有关详细信息,请参阅此内容.)grunt-cli是全局的,用于运行本地版本grunt
| 归档时间: |
|
| 查看次数: |
1551 次 |
| 最近记录: |