相关疑难解决方法(0)

我是否需要NodeJS中的依赖注入,或者如何处理...?

我目前正在使用nodejs创建一些实验项目.我已经用Spring编写了很多Java EE Web应用程序,并且很欣赏那里的依赖注入的简易性.

现在我很好奇:如何使用节点进行依赖注入?或者:我甚至需要它吗?是否有替换概念,因为编程风格不同?

我说的是简单的事情,比如分享数据库连接对象,到目前为止,但我还没有找到满足我的解决方案.

dependency-injection inversion-of-control node.js

208
推荐指数
7
解决办法
8万
查看次数

ES6:条件和动态导入语句

条件

是否可以使用下面的条件导入语句?

if (foo === bar) {
    import Baz from './Baz';
}
Run Code Online (Sandbox Code Playgroud)

我已经尝试了上述但在编译时得到以下错误(来自Babel).

'import' and 'export' may only appear at the top level
Run Code Online (Sandbox Code Playgroud)

动态

是否可以使用如下的动态导入语句?

for (let foo in bar) {
    if (bar.hasOwnProperty(foo)) {
        import Baz from `./${foo}`;
    }
}
Run Code Online (Sandbox Code Playgroud)

以上在编译时从Babel收到相同的错误.

这是可能做的还是我缺少的东西?

推理

我试图这样做的原因是我有很多"页面"的导入,它们遵循类似的模式.我想通过动态for循环导入这些文件来清理我的代码库.

如果这是不可能的,那么有更好的方法来处理ES6中的大量导入吗?

javascript ecmascript-6

71
推荐指数
4
解决办法
5万
查看次数

ES6模块导入和依赖管理

通过使用转换器,已经可以使用ES6模块.最简单的方法之一是使用Browserify和Babelify.我遇到的问题是如何处理依赖管理.

在过去,你只有一些Bower依赖项.构建将非CDN捆绑到vendor.js并将项目特定文件捆绑到foob​​ar.js(或其他).那么你就可以简单地在不同的项目中使用生成的代码bower install foobar --save.如果foob​​ar和你的新项目都具有共同的依赖关系,那么很容易通过Bowers flat依赖来解决它.

现在进入ES6模块:假设我有一个使用lodash的项目foo.目录结构如下:

src/js/foo.js src/vendor/lodash/dist/lodash.min.js

并且foo.js首先声明:

import * as _ from '../../vendor/lodash/dist/lodash.min.js';

或者(因为Babify从Babelify转换为CommonJS)

import * as _ from './../../vendor/lodash/dist/lodash.min.js';

如果我现在整理并发布我的foo项目并启动一个使用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';)

我只在cli上使用了Browserify with Babelify.我应该使用其他一些转换器吗?

javascript module dependency-management ecmascript-6

7
推荐指数
1
解决办法
3050
查看次数

如何在ecmascript 6中模拟导入的模块?

我有一个测试设置与mocha,babel和节点,旨在测试ecmascript 6代码.

有没有人对如何模拟被测模块中的导入有任何建议?

javascript mocha.js ecmascript-6 babeljs

5
推荐指数
1
解决办法
2026
查看次数