每次运行grunt任务时强制更新npm本地文件夹依赖项

时间:2016-05-30 20:41:09

标签: node.js npm gruntjs

我正在建立一个基于NPM / grunt的工具(我们称之为ProjectX),它分为两个不同的NPM模块 - 一个用于用户可配置的内容,另一个用于核心服务。

用户可配置项目在其package.json中调用核心服务项目作为依赖项:

// User Content project
{
  "description": "User-configurable content for ProjectX",
  "name": "px-user-content",
  "version": "0.0.1-alpha.0",
  "devDependencies": {
    "grunt": "^0.4.5",
    "grunt-check-dependencies": "^0.12.0",
    "grunt-subgrunt": "^1.2.0",
    "load-grunt-tasks": "^3.5.0"
  },
  "dependencies": {
    "px-core-services": "file:///Users/Me/Development/ProjectX/px-core-services"
  }
}

从User Config目录运行$ npm install,将Core Services项目复制到px-user-content/node_modules/px-core-services时,此方法正常。

在我积极开发此项目时,我希望每次运行User Config grunt项目时都能自动更新依赖项。目前我正在使用删除任务删除节点模块并重新安装它,但这需要30秒才能执行,因为它会继续重新安装所有其他已发布的依赖项。

每次我的grunt任务运行时,是否有更简单(更快)的方法强制本地文件夹NPM依赖项自我更新?或者有没有办法(希望不使用符号链接)我可以将核心服务依赖项指向dev文件夹?

1 个答案:

答案 0 :(得分:0)

Per Jack的建议,最后使用复制我需要的文件:

grunt.initConfig({
    copy: {
        devProject: {
            expand: true,
            cwd: '/Users/Me/Development/px-core-services/',
            src: ['Gruntfile.js', 'server.js', etc...],
            dest: 'node_modules/px-core-services/'
        }
    },
    checkDependencies: {
        this: {
            install: true,
            continueAfterInstall: true
        }
    },
    subgrunt: {
        ... 
    }
})
grunt.registerTask('default', ['copy', etc...])