【问题标题】:Dynamically require with browserify and angular使用 browserify 和 Angular 动态要求
【发布时间】:2014-11-08 15:39:11
【问题描述】:

我正在尝试 require 文件动态迭代 json 并使用 require 方法调用它们,不幸的是它由于某些未知原因无法读取模块。如果存在,为什么它无法要求该模块?

我创建了一个文件 json,我将在其中列出我的需求 paths browserify 应该需要的。

{
"vendor": {
        "angular-translate" : "angular-translate",
        "angular-sanitize" : "angular-sanitize.min",
        "ui-boostrap" : "ui-bootstrap-tpls-0.11.2.min",
        "dialogs" : "dialogs"
    }
}

然后我创建了一个文件来迭代这个 json 并尝试像这样要求它的路径:

package.js

var dependencies = require('./../dependencies');

    module.exports = function(angular) {

        angular.forEach(dependencies.vendor, function(value,key) {

            var path = '../vendor/' + value;

            require('./' + path);
        });
    }

主文件上的app.js 我需要package.js 这样:

var angularJs = require('angular');

require('./package.js')(angular);

browserifycation 之后,chrome 控制台给我以下错误:

未捕获的错误:找不到模块“./../vendor/angular-translate”

如何要求我的 json 文件中列出的那些文件?

【问题讨论】:

  • 很遗憾,browserify 不适用于动态路径。路径应该是硬编码的。
  • 哦,这是个坏消息 :( 没有办法解决这个问题?

标签: javascript angularjs node.js browserify


【解决方案1】:

Browserify 对您的代码进行静态分析。它不能遵循动态需求,因为它在运行时根本不涉及。

【讨论】:

    猜你喜欢
    • 2016-11-09
    • 1970-01-01
    • 1970-01-01
    • 2016-01-21
    • 2014-12-02
    • 2017-07-11
    • 2016-05-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多