我正在建立一个基于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文件夹?
答案 0 :(得分:0)
Per Jack的建议,最后使用grunt-contrib-copy复制我需要的文件:
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...])