Angular 此模块使用';导出=';,并且在使用';allowSyntheticDefaultImports';旗帜
我在执行Angular 此模块使用';导出=';,并且在使用';allowSyntheticDefaultImports';旗帜,angular,angular-cli,lodash,Angular,Angular Cli,Lodash,我在执行npm publish时遇到以下错误,但构建工作正常 下面是运行以发布包的命令 npm运行ng packagr-p projects/core/package.json&&cd dist/@app/formgenerator core&&npm publish package.json { "name": "@app/formgenerator-core", "version": "0.0.4",
npm publish
时遇到以下错误,但构建工作正常
下面是运行以发布包的命令
npm运行ng packagr-p projects/core/package.json&&cd dist/@app/formgenerator core&&npm publish
package.json
{
"name": "@app/formgenerator-core",
"version": "0.0.4",
"description": "Angular JSON schema form generator core",
"author": "devteam",
"keywords": [
"angular json schema form generator"
],
"contributors": [
"devteam@gmail.com"
],
"private": false,
"license": "UNLICENSED",
"ngPackage": {
"$schema": "../../node_modules/ng-packagr/package.schema.json",
"dest": "../../dist/@app/formgenerator-core",
"lib": {
"entryFile": "src/public_api.ts",
"umdModuleIds": {
"lodash/isEqual": "lodash-es",
"lodash/cloneDeep": "lodash-es",
"lodash/filter": "lodash-es",
"lodash/map": "lodash-es",
"lodash/uniqueId": "lodash-es",
"ajv": "ajv",
"ajv/lib/refs/json-schema-draft-06.json": "jsonDraft6",
"hot-formula-parser": "hot-formula-parser",
"@app/app-virtual-keypad": "@app/app-virtual-keypad"
}
},
"whitelistedNonPeerDependencies": [
"lodash-es",
"ajv",
"hot-formula-parser",
"@app/app-virtual-keypad"
]
},
"dependencies": {
"@app/app-virtual-keypad": "0.1.2",
"ajv": "6.12.3",
"hot-formula-parser": "3.0.2",
"lodash": "^4.17.20",
"lodash-es": "^4.17.15"
},
"peerDependencies": {
"@angular/common": ">=6.0.0",
"@angular/core": ">=6.0.0",
"@angular/forms": ">=6.0.0",
"@angular/platform-browser": ">=6.0.0",
"rxjs": ">=6.0.0"
},
"devDependencies": {
"@types/lodash-es": "4.17.3"
},
"main": "karma.conf.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
}
}
{
"compileOnSave": false,
"compilerOptions": {
"baseUrl": "./",
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"module": "esnext",
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"allowSyntheticDefaultImports": true,
"resolveJsonModule": true,
"importHelpers": true,
"target": "es2015",
"typeRoots": [
"node_modules/@types"
],
"lib": [
"es2018",
"dom"
],
"paths": {
"@app/formgenerator-core": [
"dist/@app/formgenerator-core"
],
"@app/formgenerator-core/*": [
"dist/@app/formgenerator-core/*"
]
}
},
"angularCompilerOptions": {
"fullTemplateTypeCheck": true,
"strictInjectionParameters": true
}
}
tsconfig.json
{
"name": "@app/formgenerator-core",
"version": "0.0.4",
"description": "Angular JSON schema form generator core",
"author": "devteam",
"keywords": [
"angular json schema form generator"
],
"contributors": [
"devteam@gmail.com"
],
"private": false,
"license": "UNLICENSED",
"ngPackage": {
"$schema": "../../node_modules/ng-packagr/package.schema.json",
"dest": "../../dist/@app/formgenerator-core",
"lib": {
"entryFile": "src/public_api.ts",
"umdModuleIds": {
"lodash/isEqual": "lodash-es",
"lodash/cloneDeep": "lodash-es",
"lodash/filter": "lodash-es",
"lodash/map": "lodash-es",
"lodash/uniqueId": "lodash-es",
"ajv": "ajv",
"ajv/lib/refs/json-schema-draft-06.json": "jsonDraft6",
"hot-formula-parser": "hot-formula-parser",
"@app/app-virtual-keypad": "@app/app-virtual-keypad"
}
},
"whitelistedNonPeerDependencies": [
"lodash-es",
"ajv",
"hot-formula-parser",
"@app/app-virtual-keypad"
]
},
"dependencies": {
"@app/app-virtual-keypad": "0.1.2",
"ajv": "6.12.3",
"hot-formula-parser": "3.0.2",
"lodash": "^4.17.20",
"lodash-es": "^4.17.15"
},
"peerDependencies": {
"@angular/common": ">=6.0.0",
"@angular/core": ">=6.0.0",
"@angular/forms": ">=6.0.0",
"@angular/platform-browser": ">=6.0.0",
"rxjs": ">=6.0.0"
},
"devDependencies": {
"@types/lodash-es": "4.17.3"
},
"main": "karma.conf.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
}
}
{
"compileOnSave": false,
"compilerOptions": {
"baseUrl": "./",
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"module": "esnext",
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"allowSyntheticDefaultImports": true,
"resolveJsonModule": true,
"importHelpers": true,
"target": "es2015",
"typeRoots": [
"node_modules/@types"
],
"lib": [
"es2018",
"dom"
],
"paths": {
"@app/formgenerator-core": [
"dist/@app/formgenerator-core"
],
"@app/formgenerator-core/*": [
"dist/@app/formgenerator-core/*"
]
}
},
"angularCompilerOptions": {
"fullTemplateTypeCheck": true,
"strictInjectionParameters": true
}
}
控制台错误:
Compiling TypeScript sources through ngc
ERROR: projects/core/src/lib/shared/json.validators.ts:1:8 - error TS1259: Module '"D:/app2020/septmber/formgenerator/projects/core/node_modules/@types/lodash/isEqual"' can only be default-imported using the 'allowSyntheticDefaultImports' flag
1 import isEqual from 'lodash/isEqual';
~~~~~~~
projects/core/node_modules/@types/lodash/isEqual.d.ts:2:1
2 export = isEqual;
~~~~~~~~~~~~~~~~~
This module is declared with using 'export =', and can only be used with a default import when using the 'allowSyntheticDefaultImports' flag.
是否有任何配置丢失或额外需要添加到我的项目中
任何帮助都是非常感激的
谢谢。您需要在/tsconfig.json
文件中添加“allowSyntheticDefaultImports”:true
,如下所示
{
"compileOnSave": false,
"compilerOptions": {
"baseUrl": "./",
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"downlevelIteration": true,
"experimentalDecorators": true,
"module": "esnext",
"moduleResolution": "node",
"importHelpers": true,
"target": "es2015",
"lib": [
"es2018",
"dom"
]
},
"exclude": ["node_modules"],
"angularCompilerOptions": {
"fullTemplateTypeCheck": true,
"strictInjectionParameters": true,
"allowSyntheticDefaultImports": true <------ add this
}
}
{
“保存”:false,
“编译器选项”:{
“baseUrl”:“/”,
“outDir”:“/dist/out tsc”,
“源地图”:正确,
“声明”:虚假,
“向下迭代”:正确,
“实验生态学者”:没错,
“模块”:“esnext”,
“moduleResolution”:“节点”,
“进口者”:没错,
“目标”:“es2015”,
“lib”:[
“es2018”,
“dom”
]
},
“排除”:[“节点_模块”],
“角度编译器选项”:{
“fullTemplateTypeCheck”:真,
“strictInjectionParameters”:true,
“allowSyntheticDefaultImports”:true