默认节点包版本集无法构建,但修改后的版本有效
Default node package version set fail to build but a modified one works
GitHub Issue
此问题与较新版本的 ts-loader 抛出错误有关,当您将 tsloader 从版本“^4.0.1”降级为“^3.5.0”
时全部修复
我正在使用 backpack+typescript 编写一个测试项目,并使用以下命令安装节点包:
npm install -D jshint ts-loader typescript backpack-core copy-webpack-plugin nodemon
npm install -S asciify
什么,经过一些修改,结果如下package.json:
{
"name": "myTestProject",
"version": "0.0.1",
"description": "learn",
"private": true,
"scripts": {
"start": "node ./prd/main.js",
"dev": "backpack dev",
"build": "backpack build"
},
"license": "MIT",
"devDependencies": {
"backpack-core": "^0.7.0",
"copy-webpack-plugin": "^4.5.1",
"jshint": "^2.9.5",
"nodemon": "^1.17.2",
"ts-loader": "^4.0.1",
"typescript": "^2.7.2"
},
"dependencies": {
"asciify": "^1.3.5"
}
}
但是当使用 npm run build
构建时我收到错误:
> myTestProject@0.0.1 build /home/myUser/myProjectFolder/myTestProject
> backpack build
ERROR Failed to compile with 1 errors00:34:00
error in ./src/main.ts
Module build failed: TypeError: Cannot read property 'afterCompile' of undefined
at successfulTypeScriptInstance (/home/myUser/myProjectFolder/myTestProject/node_modules/ts-loader/dist/instances.js:147:28)
at Object.getTypeScriptInstance (/home/myUser/myProjectFolder/myTestProject/node_modules/ts-loader/dist/instances.js:48:12)
at Object.loader (/home/myUser/myProjectFolder/myTestProject/node_modules/ts-loader/dist/index.js:16:41)
@ multi ./src/main.ts
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! myTestProject@0.0.1 build: `backpack build`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the myTestProject@0.0.1 build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /home/myUser/.npm/_logs/2018-01-01T01_01_01_010Z-debug.log
为了解决这个问题,我需要重新安装删除 node_modules 文件夹并替换 package.json:
{
"name": "myTestProject",
"version": "0.0.1",
"description": "learn",
"private": true,
"scripts": {
"start": "node ./prd/main.js",
"dev": "backpack dev",
"build": "backpack build"
},
"license": "MIT",
"devDependencies": {
"backpack-core": "^0.5.0",
"copy-webpack-plugin": "^4.5.0",
"jshint": "^2.9.5",
"ts-loader": "^3.5.0",
"typescript": "^2.7.2"
},
"dependencies": {
"@types/asciify": "^1.3.29",
"asciify": "^1.3.5"
}
}
添加nodemon包尝试解决,但没有效果。
我的问题是,我经过大量工作后找到了这个工作包版本集,但它可能发生在其他情况下,我没有那么多时间来修复,甚至可以完全了解这里发生的事情。
npm list
输出几个问题。
任何人都可以解释为什么会发生这种情况,如果有某种方法可以避免此类问题,我无法猜测每次我键入 npm install
命令时每个包上的工作版本。
ts-loader
4.0 具有与 webpack
重大变更一致的重大变更。我怀疑你碰到了那个。我建议您在工作流程中使用 3.5。
GitHub Issue
此问题与较新版本的 ts-loader 抛出错误有关,当您将 tsloader 从版本“^4.0.1”降级为“^3.5.0”
我正在使用 backpack+typescript 编写一个测试项目,并使用以下命令安装节点包:
npm install -D jshint ts-loader typescript backpack-core copy-webpack-plugin nodemon
npm install -S asciify
什么,经过一些修改,结果如下package.json:
{
"name": "myTestProject",
"version": "0.0.1",
"description": "learn",
"private": true,
"scripts": {
"start": "node ./prd/main.js",
"dev": "backpack dev",
"build": "backpack build"
},
"license": "MIT",
"devDependencies": {
"backpack-core": "^0.7.0",
"copy-webpack-plugin": "^4.5.1",
"jshint": "^2.9.5",
"nodemon": "^1.17.2",
"ts-loader": "^4.0.1",
"typescript": "^2.7.2"
},
"dependencies": {
"asciify": "^1.3.5"
}
}
但是当使用 npm run build
构建时我收到错误:
> myTestProject@0.0.1 build /home/myUser/myProjectFolder/myTestProject
> backpack build
ERROR Failed to compile with 1 errors00:34:00
error in ./src/main.ts
Module build failed: TypeError: Cannot read property 'afterCompile' of undefined
at successfulTypeScriptInstance (/home/myUser/myProjectFolder/myTestProject/node_modules/ts-loader/dist/instances.js:147:28)
at Object.getTypeScriptInstance (/home/myUser/myProjectFolder/myTestProject/node_modules/ts-loader/dist/instances.js:48:12)
at Object.loader (/home/myUser/myProjectFolder/myTestProject/node_modules/ts-loader/dist/index.js:16:41)
@ multi ./src/main.ts
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! myTestProject@0.0.1 build: `backpack build`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the myTestProject@0.0.1 build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /home/myUser/.npm/_logs/2018-01-01T01_01_01_010Z-debug.log
为了解决这个问题,我需要重新安装删除 node_modules 文件夹并替换 package.json:
{
"name": "myTestProject",
"version": "0.0.1",
"description": "learn",
"private": true,
"scripts": {
"start": "node ./prd/main.js",
"dev": "backpack dev",
"build": "backpack build"
},
"license": "MIT",
"devDependencies": {
"backpack-core": "^0.5.0",
"copy-webpack-plugin": "^4.5.0",
"jshint": "^2.9.5",
"ts-loader": "^3.5.0",
"typescript": "^2.7.2"
},
"dependencies": {
"@types/asciify": "^1.3.29",
"asciify": "^1.3.5"
}
}
添加nodemon包尝试解决,但没有效果。
我的问题是,我经过大量工作后找到了这个工作包版本集,但它可能发生在其他情况下,我没有那么多时间来修复,甚至可以完全了解这里发生的事情。
npm list
输出几个问题。
任何人都可以解释为什么会发生这种情况,如果有某种方法可以避免此类问题,我无法猜测每次我键入 npm install
命令时每个包上的工作版本。
ts-loader
4.0 具有与 webpack
重大变更一致的重大变更。我怀疑你碰到了那个。我建议您在工作流程中使用 3.5。