2016-06-20 175 views
0

嗯,我有一个奇怪的情况。我遵循了第三方lib安装的所有指南。当我运行ng服务时,实际上我可以在dis/vendor/redux下看到该库。但是,当我打开浏览器时,我的应用程序不工作,当我检查开发人员工具中的资源时,库不存在。我应该在哪里寻找问题?我的意思是如何有可能在dist文件夹中,我可以看到图书馆(在webstorm中),但在浏览器上它不出现?Angular CLI第三方lib安装失败

// SystemJS configuration file, see links for more information 
// https://github.com/systemjs/systemjs 
// https://github.com/systemjs/systemjs/blob/master/docs/config-api.md 

/*********************************************************************************************** 
* User Configuration. 
**********************************************************************************************/ 
/** Map relative paths to URLs. */ 
const map: any = { 
    'redux': 'vendor/redux/dist' 
}; 

/** User packages configuration. */ 
const packages: any = { 
    'redux':{defaultExtension: 'js', main: 'redux.js'} 
}; 

//////////////////////////////////////////////////////////////////////////////////////////////// 
/*********************************************************************************************** 
* Everything underneath this line is managed by the CLI. 
**********************************************************************************************/ 
const barrels: string[] = [ 
    // Angular specific barrels. 
    '@angular/core', 
    '@angular/common', 
    '@angular/compiler', 
    '@angular/http', 
    '@angular/router', 
    '@angular/platform-browser', 
    '@angular/platform-browser-dynamic', 
    '@angular/router-deprecated', 

    // Thirdparty barrels. 
    'rxjs', 
    // App specific barrels. 
    'app', 
    'app/shared', 
    /** @cli-barrel */ 
]; 

const cliSystemConfigPackages: any = {}; 
barrels.forEach((barrelName: string) => { 
    cliSystemConfigPackages[barrelName] = { main: 'index' }; 
}); 

/** Type declaration for ambient System. */ 
declare var System: any; 

// Apply the CLI SystemJS configuration. 
System.config({ 
    map: { 
    '@angular': 'vendor/@angular', 
    'rxjs': 'vendor/rxjs', 
    'main': 'main.js' 
    }, 
    packages: cliSystemConfigPackages 
}); 

// Apply the user's configuration. 
System.config({ map, packages }); 

和角度-CLI-build.js:

// Angular-CLI build configuration 
    // This file lists all the node_modules files that will be used in a build 
    // Also see https://github.com/angular/angular-cli/wiki/3rd-party-libs 

    /* global require, module */ 

    var Angular2App = require('angular-cli/lib/broccoli/angular2-app'); 

    module.exports = function(defaults) { 
     return new Angular2App(defaults, { 
     vendorNpmFiles: [ 
      'systemjs/dist/system-polyfills.js', 
      'systemjs/dist/system.src.js', 
      'zone.js/dist/**/*.+(js|js.map)', 
      'es6-shim/es6-shim.js', 
      'reflect-metadata/**/*.+(ts|js|js.map)', 
      'rxjs/**/*.+(js|js.map)', 
      '@angular/**/*.+(js|js.map)', 
      'redux/dist/**/*.js' 
     ] 
     }); 
    }; 
+0

是'供应商/终极版/距离/ redux.js',也许你需要什么格式添加'格式:“format_type”'包装的定义? – Sasxa

+0

你不应该需要'packages'定义。 – dmackerman

回答

1

我可以建议你一种解决方法,直到他们得到的第三方库更好的支持。它的工作对我来说:)

只要确保你链接您的终极版路径你的src/index.html的

<script src="/vendor/redux/dist/redux.js" type="text/javascript"></script> 

如果亘古不变的工作确保您的系统-config.js保持这样

const packages: any = { 
    'redux':{format: 'cjs',defaultExtension: 'js', main: 'redux.js'} 
}; 

希望你能运行:)