Fre*_*ind 7 typescript lodash ts-node
我需要lodash-es
在我的打字稿项目中使用,但是我无法正确配置它,它总是报告错误,例如SyntaxError: Unexpected identifier
你好
import upperCase from 'lodash-es/upperCase'
console.log('Hello ' + upperCase('typescript') + '!');
Run Code Online (Sandbox Code Playgroud)
package.json
{
"scripts": {
"demo": "ts-node hello.ts"
},
"dependencies": {
"lodash-es": "4.17.11"
},
"devDependencies": {
"@types/lodash-es": "4.17.1",
"ts-node": "7.0.0",
"typescript": "3.0.1"
}
}
Run Code Online (Sandbox Code Playgroud)
tsconfig.json
{
"compilerOptions": {
"target": "es6",
"module": "commonjs"
}
}
Run Code Online (Sandbox Code Playgroud)
运行时ts-node hello.ts
,它将报告错误,例如:
/typescript-use-lodash-es-demo/node_modules/lodash-es/upperCase.js:1
(function (exports, require, module, __filename, __dirname) { import createCompounder from './_createCompounder.js';
^^^^^^^^^^^^^^^^
SyntaxError: Unexpected identifier
at new Script (vm.js:79:7)
at createScript (vm.js:251:10)
Run Code Online (Sandbox Code Playgroud)
我还针对此问题设置了一个小型演示,您可以根据需要克隆并尝试:https : //github.com/freewind-demos/typescript-use-lodash-es-demo
一个相关的问题是将lodash-es与babel一起使用:如何正确配置babel以使用lodash-es?。由于我不确定它们的原因完全相同,因此我在这里要求输入打字稿
您可以从这里加载类型:
npm install --save-dev @types/lodash-es
Run Code Online (Sandbox Code Playgroud)
并像这样使用它:
import { camelCase } from "lodash-es"
Run Code Online (Sandbox Code Playgroud)
ts-node
.ts
在加载文件时对其进行编译。它不接触.js
文件;它们要么必须是 Node.js 可以理解的形式(例如,没有 ES6import
语句),要么必须使用单独的机制来转换它们,例如@babel/register
require 钩子(本质上与 所使用的东西相同babel-node
)。您仍然需要配置@babel/register
不忽略node_modules
,如其他答案中所述。其他答案的建议是使用lodash
而不是lodash-es
很好。
归档时间: |
|
查看次数: |
2571 次 |
最近记录: |