타이프 라이터준:수출을 정의하지 않은
을 구현하기 위해 노력하고 다음과 같은 모듈공식 수첩,나는 이 에러 메시지가 나타납니다:
포착되지 않는준:수출을 정의하지 않은
응용 프로그램에서.js:2
그러나 아무데도 나의 코드가 나는 이제까지 이름을 사용하여exports
.
어떻게 이 문제를 해결할 수 있을까요?
파
app.ts
let a = 2;
let b:number = 3;
import Person = require ('./mods/module-1');
module-1.t
export class Person {
constructor(){
console.log('Person Class');
}
}
export default Person;
tsconfig.json
{
"compilerOptions": {
"module": "commonjs",
"target": "es5",
"noImplicitAny": false,
"sourceMap": true,
"outDir": "scripts/"
},
"exclude": [
"node_modules"
]
}
76
13
몇 가지 다른 솔루션은 이 문제에 대한
-다음 줄을 추가하기 전에 다른 참조 자바 스크립트. 이것은 좋은 작은 해킹하는 것입니다.
-이 문제가 발생합니다 최신 버전의 호환되지 않습니,이는 오류 제거할 수 있을 참조하여 타이프 라이터 버전 2.1.6
편집:
이 대답을 작동하지 않을 수 있습니다 따라 당신이'다시 표적으로 하지 않음
es5
,더 이상 나는'll 만들려고 대답이 있습니다.응답 원
는 경우 CommonJS 아't 치(을 정의하는
exports
),을 제거하는 이 라인에서tsconfig.json
:따라멘트,혼자와 함께 작동하지 않을 수 있습이 이후 버전의
tsc
. 는 경우,설치할 수 있는 모듈을 로더럼 CommonJS,SystemJS 또는 RequireJS 다음을 지정합니다.주의:
보
main.js
파일을tsc
생성됩니다. 당신이에서 최고:그 루트,오류 메시지 및 제거한 후
"module":"commonjs",
,그것은 사라질 것입니다.npm@babel/플러그인-변환 모 commonjs
추가니다.babelrc 플러그인 해결되 나의 질문입니다.
사람들을 위해 계속 이 문제는 경우,귀하의 컴파일러를 대상으로 설정 ES6 당신에게 말할 필요가 바벨을 건너 모듈을 변환합니다. 그렇게 이것을 추가한
.babelrc
파일나는 같은 문제를 해결하고 그것을 추가하면"es5"라이브러리를 tsconfig.json 다음과 같다:
나의 솔루션의 합계 최대의 모든 것 위에는 작은 마술을 추가,기본적으로 추가 이 html 코드 ``html <스크립트>var 수출={"__esModule":true};</스크립트>
<script src="js/파일입니다.js"> `` 이에도 사용할 수 있습`가져오는`대신에`필요한`경'다시 사용하여 전자거나 뭔가를,그것을 잘 작동으로 호환되지 않습니 3.5.1,대상:e s3->esnext.나는 이 같은 오류가 너무입니다. 내 경우에는 그것이 있었기 때문에 우리가 옛날 수입 문서의 타이프 라이터련 프로젝트는 다음과 같다:
는 컴파일한 자바 스크립트를 다음과 같다:
이 필요했던 옛날에 다시기 때문에 우리는 그런 다음 사용
IAttributes
코드와 호환되지 않습니지't 알고 있었고 그것으로 무엇을 할지 않습니다. 그러나 제거한 후에 가져오는 문,변환IAttributes
에서ng.IAttributes
그 두 JavaScript 선이 사라지고 이렇게 오류 메시지가 표시됩니다.단순히
libraryTarget:'umd'
,이렇게`` const webpackConfig={ 출력:{ libraryTarget:'umd'//수:"포착되지 않는준:수출을 정의하지 않". } };
모듈입니다.수출=webpackConfig;//내보내기를 모든 사용자 정의 웹팩 configs. ``
나를 위해 제거하는
"esModuleInterop":true
에서 tsconfig.json 았습니다.이 설정하여 고정하는
모듈
컴파일러 옵션을es6
:json { "compilerOptions":{ "module":"es6", "target":"es5", } }
부 ASP.NET 프로젝트를 가져 오기 및 내보내기 사용할 수 없습니다 모두에서의 타이프 친.
질문's 러가 나타났을 때 나가도 이렇게 나만 나중에 발견하는 데 필요한 추가 생성되 JS 스크립트를 View 그래서 다음과 같:
무엇을 시도@iFreilicht 제안했다. 는 경우에는't 업 후've 설치된 웹팩고 모든,당신은 수 있습니다 그냥 복사 웹팩 구성에서 어딘가에 온라인으로 구성이 원하는 출력을 지원하는 CommonJS 니다. 는지 확인 이건't 의 경우에
webpack.config.js
:모듈입니다.수출={ 모드:과정입니다.env.NODE_ENV||"development", 입력:{ 인덱스:"./src/js/index.ts" }, ... ... 출력:{ libraryTarget:'commonjs',<====삭제선 path:경로입니다.(가입하__dirname,'빌'), filename:"[name].니다.js" } };
동일한 문제와 고정된 그것을 변경하여 JS 패키지령입니다.
을 확인하는 순서 필요한 패키지를 호출되고 있음을 로드하는 적절한다.
에 특정한 경우(사용하지 않는 모듈은 번들러)내가 필요로드
돌아오는
다음돌아오는 썽
다음반응하는 돌아오는
. 드 반응하는 돌아오는앞에
돌아오는 썽말
수출을 정의하지 않은`.