我们正在使用Durandal构建一个应用程序,目前这个应用程序非常庞大,我们目前正在考虑将位于App文件夹中的所有JS文件捆绑到main-built.js文件中.我猜是非常基本和平常的东西.
我正在使用Gulp和Gulp-Durandal扩展.这里是我们的gulpfile:
var gulp = require('gulp');
var durandal = require('gulp-durandal');
gulp.task('build-portal', function () {
durandal({
baseDir: 'app',
main: 'main.js',
output: 'main-built.js',
almond: false,
minify: false
}).pipe(gulp.dest('app'));
});
Run Code Online (Sandbox Code Playgroud)
这是我们的main.js文件的片段
require.config({
paths: {
'text': '../Scripts/text',
'durandal': '../Scripts/durandal',
'plugins': '../Scripts/durandal/plugins',
'transitions': '../Scripts/durandal/transitions'
},
shim: {
},
waitSeconds: 0
});
define('jquery', [], function () { return jQuery; });
define('knockout', [], function () { return ko; });
define('ga', function () { return ga; });
define(
["require", "exports", "durandal/app", "durandal/viewLocator", "durandal/system", "plugins/router", "services/logger", "modules/knockout.extensions", "modules/knockout.validation.custom"],
function …Run Code Online (Sandbox Code Playgroud) 我有一个使用单片存储库的项目.每个包都有自己的package.json文件来管理所述包的依赖关系.我正在使用lerna我们的monorepo应用程序的所有"子包"中安装包.
当前的项目结构如下所示
Project/ | package.json | node_modules/ |- packages/ |-- package1/ |--- package.json |--- node_modules/ |-- package2/ |--- package.json |--- node_modules/
我正在寻找一种在根node_modules文件夹中概括公共依赖项的方法,这样每个包在运行时都不会拉出自己的节点包副本,lerna exec -- npm install而是使用整体仓库的根目录,因此我们避免安装多个仓库中的相同包,因此,减少了项目的规模.
我已经看到了一些解决方案,包括在项目之间制作一些符号链接,但这似乎不是一个精确的科学,因为符号链接支持是非常OS的观点.此外,这似乎不是一种支持的方式.
目前,我们刚刚开始,在运行lerna exec -- npm install项目后,磁盘已经大约350mb,从npm开始拉动所有内容大约需要5分钟.随着项目的不断发展,这段时间也会随着时间的推移而延续......
因此,要恢复所有内容,我正在寻找一种方法来在repo的根目录下的node_modules文件夹中提取公共依赖项,并使子包从此文件夹中拉出它们的公共依赖项,而不是每次都获取它们自己的副本.