我在Angular 4应用程序中使用ng-lightning组件。我正在尝试构建一个bundle以部署到Tomcat服务器。我收到以下错误。通过谷歌搜索似乎ng-lightning可能是ES6,我需要将其归结为ES5。我在package.json文件中尝试了以下脚本,但仍然遇到同样的错误。
C:\ MyApp的\ node_modules \纳克雷击\ NG-lightning.js:1 从' @ angular / core'中导入{NgModule}; ^ ParseError:' import'和'出口'可能仅与' sourceType:module'
一起出现"clean": "rmdir /S /Q dist",
"newbuild": "npm run clean && tsc -p src/ --outDir dist",
"build_prod": "npm run newbuild && browserify -s main src/main.js > dist/bundle.js -t [ babelify --presets [ es2015 react ] ] && npm run minify",
"minify": "uglifyjs dist/bundle.js --screw-ie8 --compress --mangle --output dist/bundle.min.js",
我是否需要为ng-lightning设置不同的预设?我没有使用Webpack。我试过了,但是我遇到了一些不同的错误,我还没有完全学会如何使用Webpack。谢谢你的帮助。
答案 0 :(得分:0)
问题是ng-lightning是一个es6包,我需要使用带有es2015预设的“babelify”。我还需要稍微编辑脚本。我必须编辑的最后一项是ng-lightning的package.json文件。我需要在该文件中包含“browserify”转换以允许它成功捆绑。这次编辑是我之前失踪的关键部分。
ng-lightning package.json:
"browserify": {
"transform": [["babelify", { "presets": ["es2015"] }]]
},
app package.json“scripts”:
"clean": "rimraf dist",
"newbuild": "npm run clean && tsc -p src/",
"build_prod": "npm run newbuild && mkdir dist && browserify -s main -e src/main.js -t [ babelify --presets [ es2015 ] ] -o dist/app-bundle.js && npm run minify",
"minify": "uglifyjs dist/app-bundle.js --screw-ie8 --compress --mangle --output dist/app-bundle.min.js"
app package.json“devDependencies”:
"babel-preset-es2015": "^6.24.1",
"babelify": "^7.3.0",
"browserify": "^14.4.0",
"rimraf": "^2.6.1",