是否可以使用 parceljs 将 EaselJS (CreateJS) 与 TypeScript 一起使用?
Is it possible to use EaselJS (CreateJS) with TypeScript using parceljs?
我正在尝试使用 EaselJS 制作游戏,由于是 [当年],我正在使用 TypeScript。我使用 “官方” 类型 here,但我无法将其与 parceljs 一起使用。如果我导入类型,包裹会失败。如果我在没有类型的情况下导入,parcel 很高兴(并且我的构建有效),但我在 VS Code 中没有类型。
这是我的导入,适用于 parcel 构建:
import * as createjs from '@createjs/easeljs';
VS Code 在此行抛出信息警告,指出 Could not find a declaration file for module '@createjs/easeljs'.
,并且类型不起作用。
这是一个让 VS Code 开心的导入,但包裹却很伤心:
import 'createjs';
现在 EaselJS 的类型可以在 VS Code 中使用,但是 parcel 构建失败 src/main.ts:3:8: Cannot resolve dependency 'createjs'
。不酷!
这是我的 package.json:
{
"name": "corona-coaster",
"version": "0.1.0",
"license": "GPL-3.0-only",
"dependencies": {
"@createjs/easeljs": "^2.0.0-beta.4",
"createjs": "^1.0.1",
"sty": "^0.6.1"
},
"devDependencies": {
"@testing-library/jest-dom": "^5.11.0",
"@types/createjs": "^0.0.29",
"@types/easeljs": "^1.0.0",
"@types/jest": "^26.0.4",
"@types/tweenjs": "^1.0.1",
"jest": "^26.1.0",
"jest-extended": "^0.11.5",
"parcel-bundler": "^1.12.4",
"sass": "^1.26.10",
"ts-jest": "^26.1.1",
"typescript": "^3.9.6"
},
"scripts": {
"start": "parcel index.html",
"build": "parcel build index.html --public-url ./",
"test": "jest"
},
"jest": {
"preset": "ts-jest",
"moduleFileExtensions": [
"ts",
"tsx",
"js"
],
"setupFilesAfterEnv": [
"<rootDir>/testSetup.ts"
]
}
}
还有我的 tsconfig:
{
"compilerOptions": {
"baseUrl": "./src",
"paths": {
"~/*": [
"./*"
]
},
"typeRoots": [
"node_modules/@types"
]
}
}
GitHub 回购是 here。我无法切换到 webpack。
我找到了解决方法。请改用 createjs-module 包,并将其用作导入语句:
import * as createjs from 'createjs-module';
恭喜!斗争现在结束了。不需要在 tsconfig
中做任何特殊的事情,也不需要自己包含类型——它们包含在 createjs-module
中。整洁!
归功于 this comment。
为了一些供应,我最近找到了一些令人兴奋的工作。
现在@thegraid/createjs-module更新为createjs 1.0.0,解决了很多问题
https://www.npmjs.com/package/@thegraid/createjs-module
npm install --save @types/createjs
npm install --save @thegraid/createjs-module
import * as createjs from '@thegraid/createjs-module';
我正在尝试使用 EaselJS 制作游戏,由于是 [当年],我正在使用 TypeScript。我使用 “官方” 类型 here,但我无法将其与 parceljs 一起使用。如果我导入类型,包裹会失败。如果我在没有类型的情况下导入,parcel 很高兴(并且我的构建有效),但我在 VS Code 中没有类型。
这是我的导入,适用于 parcel 构建:
import * as createjs from '@createjs/easeljs';
VS Code 在此行抛出信息警告,指出 Could not find a declaration file for module '@createjs/easeljs'.
,并且类型不起作用。
这是一个让 VS Code 开心的导入,但包裹却很伤心:
import 'createjs';
现在 EaselJS 的类型可以在 VS Code 中使用,但是 parcel 构建失败 src/main.ts:3:8: Cannot resolve dependency 'createjs'
。不酷!
这是我的 package.json:
{
"name": "corona-coaster",
"version": "0.1.0",
"license": "GPL-3.0-only",
"dependencies": {
"@createjs/easeljs": "^2.0.0-beta.4",
"createjs": "^1.0.1",
"sty": "^0.6.1"
},
"devDependencies": {
"@testing-library/jest-dom": "^5.11.0",
"@types/createjs": "^0.0.29",
"@types/easeljs": "^1.0.0",
"@types/jest": "^26.0.4",
"@types/tweenjs": "^1.0.1",
"jest": "^26.1.0",
"jest-extended": "^0.11.5",
"parcel-bundler": "^1.12.4",
"sass": "^1.26.10",
"ts-jest": "^26.1.1",
"typescript": "^3.9.6"
},
"scripts": {
"start": "parcel index.html",
"build": "parcel build index.html --public-url ./",
"test": "jest"
},
"jest": {
"preset": "ts-jest",
"moduleFileExtensions": [
"ts",
"tsx",
"js"
],
"setupFilesAfterEnv": [
"<rootDir>/testSetup.ts"
]
}
}
还有我的 tsconfig:
{
"compilerOptions": {
"baseUrl": "./src",
"paths": {
"~/*": [
"./*"
]
},
"typeRoots": [
"node_modules/@types"
]
}
}
GitHub 回购是 here。我无法切换到 webpack。
我找到了解决方法。请改用 createjs-module 包,并将其用作导入语句:
import * as createjs from 'createjs-module';
恭喜!斗争现在结束了。不需要在 tsconfig
中做任何特殊的事情,也不需要自己包含类型——它们包含在 createjs-module
中。整洁!
归功于 this comment。
为了一些供应,我最近找到了一些令人兴奋的工作。 现在@thegraid/createjs-module更新为createjs 1.0.0,解决了很多问题 https://www.npmjs.com/package/@thegraid/createjs-module
npm install --save @types/createjs
npm install --save @thegraid/createjs-module
import * as createjs from '@thegraid/createjs-module';