r.js优化器没有从配置中获取

时间:2016-01-02 16:20:40

标签: javascript optimization requirejs gulp r.js

我正在使用gulp和requirejs-optimize

我的 init.js

loginForm.ShowDialog()

我的构建配置文件如下所示

//some db details hidden
$x = mysqli_fetch_array($sqll);
$vcode = $x['vcode'];
$name = $x['name'];
require_once('class.phpmailer.php');
$mail = new PHPMailer(); // create a new object
$mail->IsSMTP(); // enable SMTP
$mail->SMTPDebug = 1; // debugging: 1 = errors and messages, 2 = messages only
$mail->SMTPAuth = true; // authentication enabled
$mail->SMTPSecure = 'ssl'; // secure transfer enabled REQUIRED for Gmail
$mail->Host = "ssl://smtp.gmail.com";
$mail->Port = 465; // or 587
$mail->IsHTML(true);
$mail->Username = "sidhurockz55@gmail.com";
$mail->Password = "Password";
$mail->From  =  "sidhurockz55@gmail.com";
$mail->Subject = "Verify Email";
$mail->AddAddress($email,$name);

问题:运行时; (function(require) { "use strict"; //Constants require.config({ paths: { "angular": "app/libs/angular/angular.min", "domready": "app/libs/domReady/domReady", "angular-ui-router": "app/libs/angular-ui-router/release/angular-ui-router.min", "angular-bootstrap": "app/libs/angular-bootstrap/ui-bootstrap.min", "App": "app/app", "angular-animate": "app/libs/angular-animate/angular-animate.min", "ui-bootstrap-tpls": "app/libs/angular-bootstrap/ui-bootstrap-tpls.min", "enums": "app/enums" }, waitSecond: 0, shim: { "angular": { exports: "angular", deps: [] }, "angular-ui-router": { deps: ["angular"] }, "angular-bootstrap": { deps: ["angular"] }, "ui-bootstrap-tpls": { deps: ["angular-bootstrap"] }, "domready": { deps: [] }, "App": { deps: ["angular"] }, "angular-animate": { deps: ["angular"], exports: "angular" } } }); //This module defines all the Global constants for the app define("CONST", [], { templatesPath: "views/", URL: "https://saltjs-nirus.c9.io/service" }); define(["require", "domready"], function(require, domready) { domready(function() { require(["angular", "App", "app/router"], function(angular, app) { angular.bootstrap(document, ["salt"]); }); }); }); })(window.requirejs); 我遇到错误

  

ENOENT,没有这样的文件或目录   '/home/ubuntu/workspace/ClientApp/domReady.js'

这里requirejs优化器没有采用build-config文件中指定的var gulp = require("gulp"); var requirejsOptimize = require('gulp-requirejs-optimize'); gulp.task('scripts', function() { return gulp.src(["./../ClientApp/init.js", "./../ClientApp/app/libs/domReady/domReady.js"]) .pipe(requirejsOptimize(function(file) { return { baseUrl: "./../ClientApp/", useStrict: true, optimize: "uglify", paths: { "angular": "app/libs/angular/angular.min", "domready": "app/libs/domReady/domReady", "angular-ui-router": "app/libs/angular-ui-router/release/angular-ui-router.min", "angular-bootstrap": "app/libs/angular-bootstrap/ui-bootstrap.min", "App": "app/app", "angular-animate": "app/libs/angular-animate/angular-animate.min", "ui-bootstrap-tpls": "app/libs/angular-bootstrap/ui-bootstrap-tpls.min", "enums": "app/enums" }, shim: { "angular": { exports: "angular", deps: [] }, "angular-ui-router": { deps: ["angular"] }, "angular-bootstrap": { deps: ["angular"] }, "ui-bootstrap-tpls": { deps: ["angular-bootstrap"] }, "domready": { deps: [] }, "App": { deps: ["angular"] }, "angular-animate": { deps: ["angular"], exports: "angular" } } } })) .pipe(gulp.dest('./../build/final.js')); }); gulp.task("default", ['scripts']) 选项,而是搜索抛出错误的物理路径。如何强制优化器查找r.js构建配置中指定的gulp选项,并从那里获取文件以进行优化。

1 个答案:

答案 0 :(得分:1)

最后我想出来让它发挥作用:

我从gulp-optimizer切换到直接的Node r.js,因为Gulp dev建议直接使用优化器,因为r.js与gulp不兼容。

Git Blacklist.json:

  

“gulp-module-requirejs”:“直接使用require.js模块”,

以下是我的配置文件:

({
    mainConfigFile: "./../ClientApp/app/init.js",
    name: "init",
    baseUrl: "./../ClientApp/app/",
    insertRequire:["init"],
    findNestedDependencies: true,
    out: "./../ClientApp/build/final.js",
    wrap: true,
    optimize: "uglify",
    uglify: {
        toplevel: true,
        ascii_only: true,
        beautify: false,
        max_line_length: 1000,
        defines: {
            DEBUG: ['name', 'false']
        },
        no_mangle: true
    }
});

我正在使用uglify进行require.js提供的缩小

<强>解释

  • mainConfigFile:使用此选项指出您已定义pathsshimsdeps等文件的位置.Prose要求足够智能从这个声明中选择配置进行处理(他们使用正则表达式模式来过滤这部分,所以要小心。请参考他们的DOC
  • 名称:入口点模块名称。定义你的执行开始的地方。 PS:如果您有配置且EP是同一个文件,则需要检测到这个并将name添加到您定义的呼叫中。
  • insertRequire:这将在结尾处插入一个require语句,该语句将触发代码的执行。请参阅DOC
  • findNestedDependencies :Instruct require从您的入口点文件中选择依赖项。遍历文件并获取最终构建的依赖项。

休息是自我解释或参考documentation

这样救了我。

要与gulp构建系统一起使用,请参阅gulp shell模块,通过此模块,您可以对构建系统进行连接,以自动完成整个过程。

请参阅此answer以了解如何实现此目标。

希望这个答案可以帮助像我一样的人!