Replace ng-annotate with babel-plugin-angularjs-annotate
ng-annotate was deprecated, the successor is babel-plugin-angularjs-annotate.More details, please read this post.
babel-plugin-angularjs-annotate is a standard Babel plugin.
Install
babel-plugin-angularjs-annotate
.npm install babel-plugin-angularjs-annotate --save-dev
It is easy to configure it in the babel configuration file, there is a .babelrc
file located in the project root folder.{
"plugins": ["transform-runtime", ["angularjs-annotate", { "explicitOnly" : true}]],
"presets": ["es2015", "stage-0"]
}
The explicitOnly option force you to use ngInject
or /*@ngInject*/
to handle the dependency injection.I have used
ngInject
in all of the smaple codes to process dependency injection explicitly, there is no need to change the codes.In the former codes, I configured a webpack loader named
ng-annotate-loader
to process ngInject
via ng-annotate in webpack.conf file, it is no use and can be removed now.Remove
ng-annotate-loader
.npm uninstall ng-annotate-loader --save-dev
And remove it from webpack configuration.//webpack.conf
{ test: /\.js$/, exclude: [/app\/lib/, /node_modules/], loader: 'babel' },
...
Run the codes, it should work as before.$ npm run start
> ng6-starter@0.0.1 start E:\hantsylabs\angular-es6-sample
> gulp serve
[22:51:58] Requiring external module babel-register
[22:52:02] Using gulpfile E:\hantsylabs\angular-es6-sample\gulpfile.babel.js
[22:52:02] Starting 'serve'...
[22:52:04] Finished 'serve' after 1.36 s
[BS] Access URLs:
-------------------------------------
Local: http://localhost:3000
External: http://192.168.56.1:3000
-------------------------------------
UI: http://localhost:3001
UI External: http://192.168.56.1:3001
-------------------------------------
[BS] Serving files from: client
webpack: wait until bundle finished: /index.html
webpack built a539378083e795ec5876 in 39091ms
Hash: a539378083e795ec5876
Version: webpack 1.14.0
Time: 39091ms
Asset Size Chunks Chunk Names
674f50d287a8c48dc19ba404d20fe713.eot 166 kB [emitted]
b06871f281fee6b241d60582ae9369b9.ttf 166 kB [emitted]
912ec66d7572ff821749319396470bde.svg 444 kB [emitted]
app.bundle.js 102 kB 0 [emitted] app
vendor.bundle.js 4.5 MB 1 [emitted] vendor
app.bundle.js.map 117 kB 0 [emitted] app
vendor.bundle.js.map 5.29 MB 1 [emitted] vendor
index.html 1.28 kB [emitted]
webpack: bundle is now VALID.
评论