2016-07-06 94 views
1

我遇到了lodash问题。当我部署使用一饮而尽我总是同样的错误:无法部署lodash

vendors.min.js:3 GET http://127.0.0.1/projects/myproject/lodash 404 (Not Found) 

我宣布库到我的index.html文件

<script src="node_modules/lodash/lodash.js"></script> 

我导入lodash到我打字稿文件

///<reference path="../../../typings/modules/lodash/index.d.ts" /> 
import * as _ from "lodash"; 

这是当我测试我的网站localy(通过启动精简版服务器与npm启动)的工作。

现在,我想用Gulp部署我的网站。这是我的一饮而尽文件

gulp.task('app-bundle', function() { 
    var tsProject = ts.createProject('tsconfig.json', { 
     typescript: require('typescript'), 
     outFile: 'app.js' 
    }); 

    var tsResult = gulp.src([ 
    'node_modules/angular2/typings/browser.d.ts', 
    'typings/main/ambient/firebase/firebase.d.ts', 
    'app/**/*.ts' 
    ]) 
    .pipe(ts(tsProject)); 

    return tsResult.js.pipe(addsrc.append('config-prod.js')) 
        .pipe(concat('app.min.js')) 
        .pipe(uglify()) 
        .pipe(gulp.dest('./dist')); 
}); 

gulp.task('vendor-bundle', function() { 
    gulp.src([ 
      'node_modules/es6-shim/es6-shim.min.js', 
      'node_modules/systemjs/dist/system-polyfills.js', 
      'node_modules/angular2/bundles/angular2-polyfills.js', 
      'node_modules/systemjs/dist/system.src.js', 
      'node_modules/rxjs/bundles/Rx.js', 
      'node_modules/angular2/bundles/angular2.dev.js', 
      'node_modules/angular2/bundles/http.dev.js', 
      'node_modules/angular2/bundles/router.min.js', 
      'node_modules/lodash/lodash.js' 

     ]) 
     .pipe(concat('vendors.min.js')) 
     .pipe(uglify()) 
     .pipe(gulp.dest('./dist')); 
}); 

gulp.task('default',[ 'app-bundle', 'vendor-bundle' ], function() { 
    gulp.src('index.html') 
    .pipe(htmlreplace({ 
     'vendor': 'vendors.min.js', 
     'app': 'app.min.js' 
    })) 
    .pipe(gulp.dest('dist')); 
}); 

当我测试我的网站,我有以下错误:

vendors.min.js:3 GET http://127.0.0.1/projects/myproject/lodash 404 (Not Found)r @ vendors.min.js:3e.scheduleTask @ vendors.min.js:3e.scheduleMacroTask @ vendors.min.js:3(anonymous function) @ vendors.min.js:3send @ VM3157:3L @ vendors.min.js:4(anonymous function) @ vendors.min.js:4e @ vendors.min.js:3(anonymous function) @ vendors.min.js:4(anonymous function) @ vendors.min.js:4(anonymous function) @ vendors.min.js:5(anonymous function) @ vendors.min.js:5(anonymous function) @ vendors.min.js:5(anonymous function) @ vendors.min.js:5(anonymous function) @ vendors.min.js:5(anonymous function) @ vendors.min.js:4e.invoke @ vendors.min.js:3e.run @ vendors.min.js:3(anonymous function) @ vendors.min.js:3e.invokeTask @ vendors.min.js:3e.runTask @ vendors.min.js:3o @ vendors.min.js:3invoke @ vendors.min.js:3 
vendors.min.js:3 Error: XHR error (404 Not Found) loading http://127.0.0.1/projects/myproject/lodash 
    Error loading http://127.0.0.1/projects/myproject/lodash as "lodash" from http://127.0.0.1/projects/myproject/services/base-services/base.services 
    at o (http://127.0.0.1/projects/myproject/vendors.min.js:4:10124) 
    at XMLHttpRequest.L.a.onreadystatechange (http://127.0.0.1/projects/myproject/vendors.min.js:4:10712) 
    at XMLHttpRequest.t [as _onreadystatechange] (http://127.0.0.1/projects/myproject/vendors.min.js:3:12638) 
    at e.invokeTask (http://127.0.0.1/projects/myproject/vendors.min.js:3:8519) 
    at e.runTask (http://127.0.0.1/projects/myproject/vendors.min.js:3:5879) 
    at XMLHttpRequest.invoke (http://127.0.0.1/projects/myproject/vendors.min.js:3:9628) 

这里是我的SystemJS:

System.config({ 
    paths: { 
    'rxjs/add/observable/*' : 'node_modules/rxjs/add/observable/*.js', 
    'rxjs/add/operator/*' : 'node_modules/rxjs/add/operator/*.js', 
    'rxjs/*' : 'node_modules/rxjs/*.js' 
    }, 
    map: { 
    '@angular' : 'angular2', 
    'videogular2' : 'node_modules/videogular2', 
    'rxjs': 'node_modules/rxjs', 
    'lodash': 'node_modules/lodash' 
    }, 
    packages: { 
    map: { 
     'rxjs': 'node_modules/rxjs' 
    }, 
    app: { 
     format: 'register', 
     defaultExtension: 'js' 
    }, 
    node_modules: { 
     defaultExtension: 'js' 
    }, 
    lodash:{ 
     main:'lodash', 
     defaultExtension:'js' 
    } 
    } 
}); 
System.import('app/boot') 
     .then(null, console.error.bind(console)); 

我因为许多搜索天解决方案,我真的很感激任何帮助:)。

当我部署,我补充一点,剧本太:

document.addEventListener('DOMContentLoaded', function() { 
    System.import('boot') 
     .then(null, console.error.bind(console)); 
}); 
+0

你的SystemJS配置如何? – rinukkusu

+1

嗨,我已经使用SystemJS配置更新了我的帖子。 – Ivan

+0

有人吗? ...:'[ – Ivan

回答

1

我终于成功了!

  1. 创建如下的系统配置:
System.config({ 
    meta:{ 
     'vendors.min.js':{ 
      format:'global' 
     } 
    }, 
    map:{ 
     'lodash':'http://127.0.0.1/js/lodash.min.js' 
    } 
}); 
  • 添加一口任务lodash
  • gulp.task('lodash', function(){ 
        return gulp.src('node_modules/lodash/lodash.min.js') 
         .pipe(gulp.dest('./dist/js')); 
    }); 
    

    希望意愿帮助别人。

    +0

    感谢您的分享。我一直在努力。 – Laurence