Please provide us with the following information:
Mac OSX El Capitan
Please run
ng --version. If there's nothing outputted, please run in a Terminal:node --versionand paste the result here:
ng version
angular-cli: 1.0.0-beta.22-1
node: 6.5.0
os: darwin x64
// 3rd Party Libraries
@import "~bootstrap/scss/bootstrap";
@import "~bourbon/app/assets/stylesheets/bourbon"; // Place this AFTER bootstrap to avoid some conflicts
// Global partials
@import "partials/mixins";
// Misc partials
@import "partials/animations";
@import "partials/buttons";
@import "partials/contentFooter";
@import "partials/contentHeader";
@import "partials/layout";
@import "partials/loading";
@import "partials/misc";
@import "partials/nodes";
@import "partials/sideNav";
@import "partials/sparkline";
@import "partials/typography";
````
bash
npm link /Users/silveir/Projects/dlabs/dlabs-web-components/
/usr/local/lib/node_modules/dlabs-web-components -> /Users/silveir/Projects/dlabs/dlabs-web-components
/Users/silveir/Projects/dlabs/dlabs-web-components-app/node_modules/dlabs-web-components -> /usr/local/lib/node_modules/dlabs-web-components -> /Users/silveir/Projects/dlabs/dlabs-web-components
_Uncaught SyntaxError: Unexpected token : styles.bundle.map:formatted:1 _
Normally this include a stack trace and some more information.
I run into this problem this past late Summer and discovered #1875, decided to wait until it was fixed; upon noticing that it was fixed when I upgraded to [email protected] I decided to give it a whirl. Unfortunately I found the exact same problem. This time, I decided to report it.
Thanks! We'll be in touch soon.
Same as https://github.com/angular/angular-cli/issues/3760, still not resolved. It does seem like an angular issue.
I had the same issue. I end doing npm pack to create a tar and then install from tar (npm install
I should have added one additional comment regarding of the workaround, which I decided it is better than using npm link. The work around consists of the following:
Regards
Rodrigo
I'm not sure what's happening in your particular example. If you can get me a simple example, for instance a very basic repo that I can clone, link and see the problem, I can investigate.
@filipesilva
Made a reproduction repo: https://github.com/sterfpaul/angular-cli-issue-3875.
Check it out and npm install and link, then run ng build and you will see the problem with angular-cli and npm link.
Any update on this?
Partial workaround for the problem in my repo is to add the following paths configuration to tsconfig.json:
paths": {
"@angular/core": ["../node_modules/@angular/core"]
}
Doesn't seem to work for everything. Not for Observable from rxjs for example.
@sterfpaul the problem you describe is a different one than this issue proper, see https://github.com/angular/angular-cli/issues/1514#issuecomment-240910842.
@filipesilva It seems that it's a problem that is solvable with webpack configuration and this wasn't a problem in the
This issue, along with #1514, are notably problematic when trying to decompose a large sprawling Angular application into smaller ones. That repro from @sterfpaul is right on. Does anyone know of a possible next step for CLI to get it working for that repro?
(As others have noted on this issue and elsewhere, it's possible to work around all of this with some file-watch-automatic-copy scripts; but that is messy and yields a poor development experience: extra copies of files, make sure that the right one, etc.)
Short story : I have successfully bootstraped a working example which allow me to consume an angular library in an angular cli based app, and I can serve and build it as well.
Please note that no build is required on the lib side, since ng cli is building it for you. In fact, I have not even tried to use the lib compiled version yet.
Long story : you can find it here : https://github.com/nimaen/lerna-ngcli
My consumer app has the following tsconfig.json :
{
"compileOnSave": false,
"compilerOptions": {
"target": "es5",
"module": "es2015",
"moduleResolution": "node",
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"typeRoots": [
"node_modules/@types"
],
"lib": [
"es2016",
"dom"
],
"baseUrl": ".",
"paths": {
"@angular/core": [
"node_modules/@angular/core"
]
}
},
"include": [
"src"
]
}
Please look carefully at this tsconfig.json, since I've added the include attributes and changed the baseUrl and paths. And you will have to remove the tsconfig.app.json override rules as follow :
{
"extends": "../tsconfig.json",
"exclude": [
"test.ts",
"**/*.spec.ts"
]
}
I have a considerably larger implementation of the same pattern here:
https://github.com/OasisDigital/many-to-many-angular
... with a different tsconfig paths setting, to make Rxjs and other things work:
https://github.com/OasisDigital/many-to-many-angular/blob/master/application/admin/tsconfig.json#L12
"paths": {
"@angular/*": ["../node_modules/@angular/*"],
"@ngrx/*": ["../node_modules/@ngrx/*"],
"rxjs/*": ["../node_modules/rxjs/*"]
},
I haven't had any problem with RxJS so far.
I suppose that the problem might be linked to decorator metadatas, since I often encounter the makeDecorator error stuff.
The RxJS symptom I saw was as follows: import 'rxjs/add/operator/whatever' didn't work, because it brought in a separate copy of RxJS rather than affecting the main one brought in my the main project. The RxJS line in my snippet above avoided that problem.
The makeDecorator error happens because (possibly among other reasons) a library grabs a different copy of Angular (from its own copy of node_modules) than the application.
I would have done the same thing with the symptoms you describe, just find it strange to not have the same error :thinking:
Anyway, it's just a small workaround for now.
@nimaen There are many errors and problems and adjustments needed as a program uses more Angular features, that are not relevant for a simple example. I am working on adding more features to my example, more modules, using more parts of the Angular API - hopefully to discover "all" of the adjustments needed for this approach to work on real, complex projects.
Yes yes, for good. I'll have a look at your contribution for those problems 😉
I am also applying fixes like those in multiple enterprise applications.
I'll come to post further solutions if needed.
https://github.com/angular/angular-cli/pull/6292 documents how to use linked libraries, but relies on https://github.com/angular/angular-cli/pull/6276 which is only present on 1.1.0-rc.0 and up.
i have similar problem with @angular/cli 1.4.9 here https://github.com/swiety85/angular2gridster/tree/137-demo-src-app-gridster
dir structure:
├─ demo //angular-cli app
│ └─ src
└─ src //library source
reproduce steps:
cd angular2gridster
npm link
cd demo
npm link angular2gridster

after that in demo/node_modules we have linked angular2gridster package but with library's node_modules which unfortunately contain @angular/core
start demo ng serve --preserve-symlinks affects error:
Uncaught Error: Unexpected value 'GridsterModule'
imported by the module 'AppModule'. Please add a @NgModule annotation.
removing demo/node_modules/angular2gridster/node_modules/@angular/core
solves the problem temporary but after that we can't rebuild library.
path mapping inside demo/src/tsconfig.app.json also doesn't help:
"baseUrl": ".",
"paths": {
"@angular/core": ["../node_modules/@angular/core"]
}
library dependecies:
"peerDependencies": {
"@angular/common": "4.4.6",
"@angular/core": "4.4.6"
},
"devDependencies": {
"@angular/common": "4.4.6",
"@angular/compiler": "4.4.6",
"@angular/compiler-cli": "4.4.6",
"@angular/core": "4.4.6",
"@angular/language-service": "4.4.6",
"@types/node": "~6.0.60",
"codelyzer": "^3.0.1",
"reflect-metadata": "~0.1.9",
"rxjs": "^5.5.2",
"ts-loader": "^2.0.1",
"ts-node": "~3.0.4",
"tslint": "~5.3.2",
"typescript": "2.4.2",
"zone.js": "^0.8.4"
}
demo dependencies:
"dependencies": {
"@angular/animations": "4.4.6",
"@angular/common": "4.4.6",
"@angular/compiler": "4.4.6",
"@angular/core": "4.4.6",
"@angular/forms": "4.4.6",
"@angular/http": "4.4.6",
"@angular/platform-browser": "4.4.6",
"@angular/platform-browser-dynamic": "4.4.6",
"@angular/router": "4.4.6",
"core-js": "^2.5.1",
"rxjs": "^5.5.2",
"zone.js": "^0.8.4"
},
"devDependencies": {
"@angular/cli": "1.4.9",
"@angular/compiler-cli": "4.4.6",
"@angular/language-service": "4.4.6",
"@types/jasmine": "~2.5.53",
"@types/jasminewd2": "~2.0.2",
"@types/node": "~6.0.60",
"codelyzer": "~3.0.1",
"gh-pages": "^1.1.0",
"jasmine-core": "~2.6.2",
"jasmine-spec-reporter": "~4.1.0",
"karma": "~1.7.0",
"karma-chrome-launcher": "~2.1.1",
"karma-cli": "~1.0.1",
"karma-coverage-istanbul-reporter": "^1.2.1",
"karma-jasmine": "~1.1.0",
"karma-jasmine-html-reporter": "^0.2.2",
"protractor": "~5.1.2",
"ts-node": "~3.0.4",
"tslint": "~5.3.2",
"typescript": "2.4.2"
}
any idea?
I have the same problem but with Angular 5 and angular-cli 1.5.0
Most helpful comment
I have the same problem but with Angular 5 and angular-cli 1.5.0