子编译中的错误失败:模块构建失败:TypeError: 无法阅读属性' newLine'未定义的 at Object.getNewLineCharacter(C:... \ node_modules \ typescript \ lib \ typescript.js:9581:20) at Object.createCompilerHost(C:... \ node_modules \ typescript \ lib \ typescript.js:66675:26) 在Object.ngcLoader(C:... \ node_modules \ @ngtools \ webpack \ src \ loader.js:386:33):TypeError:无法读取属性' newLine'未定义的
> ./src/main.ts中的错误找不到模块:错误:无法解决 ' ./$$_ gendir /应用/ app.module.ngfactory'在 ' C:\ SRC' @ ./src/main.ts 2:0-74 @ multi ./src/main.tsnpm ERR! Windows_NT 10.0.15063 npm ERR! argv" C:\ Program 文件\的NodeJS \ node.exe" " C:\程序 文件\的NodeJS \ node_modules \ NPM \ BIN \ NPM-cli.js" "运行" " NG" "建立" " - " " - PROD"错误的ERR!节点v6.10.3 npm ERR! npm v3.10.10 npm ERR! 代码ELIFECYCLE npm ERR! fol-mcdean@0.1.0 ng:
ng "build" "--prod"
错误的ERR!退出状态1 npm ERR!错误的ERR!失败了 fol-mcdean@0.1.0 ng script' ng" build" " - PROD"&#39 ;.错误的ERR!确保 你安装了最新版本的node.js和npm。错误的ERR!如果 你这么做,这很可能是fol-mcdean包的问题,npm 呃!不是与npm本身。错误的ERR!告诉作者这个失败了 你的系统:npm ERR! ng" build" " - PROD"错误的ERR!你可以得到 有关如何使用此项目打开问题的信息:npm ERR!
npm错误关于错误!或者,如果没有,你可以得到 他们的信息来自:npm ERR! npm owner ls fol-mcdean npm ERR!有 可能是上面的额外日志输出。npm ERR!请在任何支持请求中包含以下文件: 错误的ERR! C:... \ NPM-的debug.log
我有一个项目,使用@angular 4.1.3和@ angular / cli 1.1.0-rc.0(尝试1.04也有相同的结果)。所以项目建设很好 ng build --aot = true 但使用ng build --prod。
时失败并显示此错误我对\ node_modules @ ngtools \ webpack \ src \ loader.js进行了一些调试
事实证明它在这些方面打破了:
function ngcLoader() {
...
const sourceFileName = this.resourcePath; //here is index.ts file, I'll show it later
const plugin = this._compilation._ngToolsWebpackPluginInstance; //plugin === undefined here!
if (plugin && plugin instanceof plugin_1.AotPlugin) { //and of course this is false
...
} else {
const options = loaderUtils.getOptions(this) || {}; //and options are {} here...
...
const compilerHost = ts.createCompilerHost(compilerOptions); //and of cource it breaks here
...
}
}
它失败的文件是index.ts:
export * from './GJLog.component';
我还检查了所有软件包的所有版本,清理了缓存,重新安装了节点..一切..但在AOT模式下仍然是同样的问题。同时,它完美地编译了aot = false ...
然后我决定阅读--prod和notprod之间的区别: 并运行以下命令:
npm run ng build -- --aot=true --environment=prod --output-hashing=all --sourcemaps=false --extract-css=true
它有效!
所以,剩下就是这个:
- prod还设置了以下不可标记的设置:
1)如果在.angular-cli.json中配置,则添加服务工作者。
2)用生产值替换模块中的process.env.NODE_ENV(某些库需要这样做,比如反应)。
3)在代码上运行UglifyJS
所以我没有任何服务人员,process.env.NODE_ENV也不适用...... 这是UglifyJS吗? 不知道下一步该怎么做。有什么建议吗?
答案 0 :(得分:1)
我对此问题的解决方案和调查如下: https://github.com/angular/angular-cli/issues/6426
总的来说,似乎原因在于cssnano和一个空网址(“”)。