ES6模块导入和依赖管理

7
使用转译器,已经可以使用ES6模块了。其中最简单的方法之一是使用Browserify和Babelify。 我遇到的问题是如何处理依赖关系管理。
在旧时代,你只需要一些Bower依赖项。构建将非CDN捆绑到vendor.js和项目特定文件到foobar.js(或其他文件)中。 因此,您只需通过简单的 bower install foobar --save 就能在不同的项目中使用生成的代码。 如果foobar和您的新项目都有公共依赖项,那么这个问题就很容易解决了。
现在来看看ES6模块: 假设我有一个名为foo的项目,使用了lodash。目录结构如下: src/js/foo.js src/vendor/lodash/dist/lodash.min.js 并且foo.js开始声明: import * as _ from '../../vendor/lodash/dist/lodash.min.js'; 或者(因为Browserify想要这样做,由于Babelify转换为CommonJS): import * as _ from './../../vendor/lodash/dist/lodash.min.js'; 如果我现在完成并发布了foo项目,并启动一个新项目bar,它使用foo,那么这将是我的目录结构。 src/js/bar.js src/vendor/foo/dist/foo.js src/vendor/lodash/dist/lodash.min.js 但那不起作用,因为从foolodash的路径现在已经断裂了(如果我正确理解Browserify,'./blaat/file.js'中的点斜杠是相对于调用它的文件)。
有没有一种方法可以导入而不做任何文件路径假设?
难道没有一种方法来指示多个源根目录吗?(即在上面的情况下,src/js和src/vendor...好吧,理想情况下,您只想声明import * as _ from 'lodash';
我只是在命令行上使用过带有Babelify的Browserify。我应该使用其他转译器吗?
1个回答

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接