【发布时间】:2016-06-28 23:33:00
【问题描述】:
我正在尝试将 lodash 的依赖项添加到我的项目中,但 VS2015 构建一直在爆炸。在构建输出“构建:找不到模块'lodash'”中使用它。构建失败,因为 typescript 编译器无法解析 lodash。这是我的 package.json 依赖项:
"dependencies": {
"@angular/common": "2.0.0-rc.3",
"@angular/compiler": "2.0.0-rc.3",
"@angular/core": "2.0.0-rc.3",
"@angular/forms": "0.1.1",
"@angular/http": "2.0.0-rc.3",
"@angular/platform-browser": "2.0.0-rc.3",
"@angular/platform-browser-dynamic": "2.0.0-rc.3",
"@angular/router": "3.0.0-alpha.7",
"@angular/router-deprecated": "2.0.0-rc.2",
"@angular/upgrade": "2.0.0-rc.3",
"systemjs": "0.19.27",
"core-js": "^2.4.0",
"reflect-metadata": "^0.1.3",
"rxjs": "5.0.0-beta.6",
"zone.js": "^0.6.12",
"lodash": "4.13.1",
"angular2-in-memory-web-api": "0.0.12",
"bootstrap": "^3.3.6"
},
"devDependencies": {
"concurrently": "^2.0.0",
"lite-server": "^2.2.0",
"typescript": "^1.8.10",
"typings":"^1.0.4"
}
这是我的 system.config.js:
/**
* System configuration for Angular 2 samples
* Adjust as necessary for your application needs.
*/
(function (global) {
// map tells the System loader where to look for things
var map = {
'app': 'app', // 'dist',
'@angular': 'Scripts/npmlibs/@angular',
'angular2-in-memory-web-api': 'Scripts/npmlibs/angular2-in-memory-web-api',
'rxjs': 'Scripts/npmlibs/rxjs',
'lodash': 'Scripts/npmlibs/lodash/lodash.js'
};
// packages tells the System loader how to load when no filename and/or no extension
var packages = {
'app': { main: 'main.js', defaultExtension: 'js' },
'rxjs': { defaultExtension: 'js' },
'angular2-in-memory-web-api': { defaultExtension: 'js' },
'lodash': { defaultExtension: 'js' }
};
var ngPackageNames = [
'common',
'compiler',
'core',
'http',
'platform-browser',
'platform-browser-dynamic',
'router',
'router-deprecated',
'upgrade',
'forms'
];
// Individual files (~300 requests):
function packIndex(pkgName) {
packages['@angular/' + pkgName] = { main: 'index.js', defaultExtension: 'js' };
}
// Bundled (~40 requests):
function packUmd(pkgName) {
packages['@angular/' + pkgName] = { main: '/bundles/' + pkgName + '.umd.js', defaultExtension: 'js' };
}
// Most environments should use UMD; some (Karma) need the individual index files
var setPackageConfig = System.packageWithIndex ? packIndex : packUmd;
// Add package entries for angular packages
ngPackageNames.forEach(setPackageConfig);
var config = {
map: map,
packages: packages
}
System.config(config);
})(this);
围绕这个错误的大部分谷歌搜索导致我完全删除了我的 node_modules 文件夹并重新运行 npm install。我已经这样做了 3 次,重新启动了 VS2015,并重新启动了我的虚拟机,但没有解决这个问题。我将所有需要的依赖项从 /node_modules 复制到 /Scripts/npmlibs,这样我就不必将 npm 下载的 20k 文件部署到我们的部署 Web 服务器。我已经验证了 system.config.js 文件中的路径。
我不知道 VS/npm 出了什么问题,为什么我的构建在这里失败了。
谢谢!
【问题讨论】: