javascript - yeoman工作流的node_module的模块管理问题
PHP中文网
PHP中文网 2017-04-11 13:15:50
[JavaScript讨论组]

1.对于目前的yeoman工作流的node_module分为2个,一个是给主入口index.js用的package.json,一个是给工作流模板用的package.json,目录结构如下

|-generator-xxx
|      |-app
|      |  |-template 
|      |  |    |-mobile
|      |  |    |-pc
|      |  |    |-package.json
|      |  |    |-gulpfile.js
|      |  |-index.js 
|      |-package.json

对于跟app同级的package.json,在npm link的时候就会帮我们安装好相应的模块。
现在就是如果对于tempalte里面的package.json里面的模块要怎么安装。
目前我的处理思路是这样的:

  1. 在template目录执行npm install

  2. 在构建的时候创建出这个在全局node_module的一个软链接

    if(win32){
         require('child_process').exec(`mklink /d .\\node_modules ${process.env.APPDATA}\\npm\\node_modules\\${yoName}\\app\\templates\\node_modules`)
     } else{
         this.spawnCommand('ln', ['-s', `/usr/local/lib/node_modules/${yoName}/app/templates/node_modules`, 'node_modules']);
    
     }

我还见过有一种是直接在end的时候执行this.installDependencies(),但是这种的话每次都会自动的执行npm install ,每个项目都是一个node_module。

目前的话如果第1次用的人,他需要执行1次npm link ,1次npm insall 然后才可以正常的使用这个yo的工作流。
我想问下有没有更好的方案,例如:
我第1次执行yo xxx的时候,是在全局的template自动执行npm install,并且link这个软连接过来。这样的话我第1次用这个工作流的时候就只需要执行npm link就可以了。

PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(0)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号