Description
macOS El Capitan
angular-cli: 1.0.0-beta.24
node: 6.9.1
os: darwin x64
@angular/common: 2.4.2
@angular/compiler: 2.4.2
@angular/core: 2.4.2
@angular/forms: 2.4.2
@angular/http: 2.4.2
@angular/platform-browser: 2.4.2
@angular/platform-browser-dynamic: 2.4.2
@angular/router: 3.4.2
@angular/compiler-cli: 2.4.1
Repro steps.
Create a component, add a package.json to the component, and install a dependency.
ng generate component my-component
cd src/app/my-component
echo {} > package.json
npm install --save lodash.chunk
Then require the dependency:
// my-component.component.ts
let chunk = require('lodash.chunk');
The log given by the failure.
ERROR in ./src/app/my-component/my-component.component.ts
Module not found: Error: Can't resolve 'lodash.chunk' in '/Users/myuser/Documents/my-project/src/app/my-component'
Mention any other details that might be useful.
I can fix the module resolve in the webpack config, by changing line 39 of webpack-build-common.ts to just use node_modules
and let it resolve:
// const nodeModules = path.resolve(projectRoot, 'node_modules');
const nodeModules = 'node_modules'; // this works
The reason I need nested node_modules is because we are developing components in a single repo, but we want to separate them out in our deployment build so each component can have its own dependencies.
Is there something I'm missing to make this work out of the box?