我刚开始使用Yeoman,我正在开发一个至少有两个应用程序的项目 - 一个用于网站的前端,另一个用于管理面板。它在Backbone中,但我认为那部分是无关紧要的。 我很清楚如何使用Yeoman设置一个应用程序。但是当两个应用程序共享相同的依赖关系时(例如,骨干,下划线等),你如何设置两个? 似乎找不到这个答案。
答案 0 :(得分:2)
您可以创建两个应用文件夹 - app1和app2。依赖项node_modules和bower_components将位于根级别。见下面的结构:
YourApp
- node_modules
- bower_components
- app1
- app2
- bower.json
- package.json
- GruntFile.js
运行grunt任务来构建应用程序时。它基本上在appPath
中查找关键bower.json
。您可以将此键值设置为要构建的文件夹的名称。
另一种方法是在GruntFile.js
中进行一些修改,以便为构建不同的app文件夹分别执行grunt任务。请参阅以下代码:
// Configurable paths for the application
var appConfig = {
app: require('./bower.json').appPath || 'app',
app1: 'app1', // Added new App1 here.. Similarly you can add multiple keys here.
dist: 'dist'
};
添加了一个新的子任务livereload1,它将监视app1目录中的更改
livereload1: {
options: {
open: true,
middleware: function (connect) {
return [
connect.static('.tmp'),
connect().use(
'/bower_components',
connect.static('./bower_components')
),
connect().use(
'/app/styles',
connect.static('./app/styles')
),
connect.static(appConfig.app1) // your new appConfig path
];
}
}
}
注册新任务app1
以构建app1
文件夹
grunt.registerTask('app1', 'Compile then start a connect web server', function (target) {
grunt.task.run([
'clean:server',
'wiredep',
'concurrent:server',
'autoprefixer:server',
'connect:livereload1',
'watch'
]);
});
同样,您可以为Test或Dist等创建新任务。