我在我的 Angular 4 应用程序中使用了 ng-lightning 组件。我正在尝试构建一个捆绑包以部署到 Tomcat 服务器。我收到下面的错误。通过谷歌搜索,似乎ng-lightning可能是ES6,我需要将其贬低为ES5。我在我的package.json文件中尝试了以下脚本,但仍然收到相同的错误。
C:\myappode_modulesg-Lightningg-Lightning.js:1从"@angular/核心"导入 { NgModule };^解析错误:"导入"和"导出"可能仅与"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。感谢您的帮助。
问题是ng-lightning是一个es6软件包,我需要在es2015预设中使用"babelify"。我还需要稍微编辑一下脚本。我必须编辑的最后一项是ng-lightning的package.json文件。我需要在该文件中包含一个"浏览器化"转换,以使其成功捆绑。这个编辑是我之前缺少的关键部分。
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",