java 引入绝对路径,使用ES6语法和绝对路径导入外部模块

所以我有一个看起来像这样的项目:

app/

bin/

lib/

src/

main/

submodule.ts

utilities/

common.ts

main.ts

tsconfig.json

gulpfile.js

和 app/src/main/submodule.ts 需要导入 app/src/utilities/common.ts . 我正在尝试使用ES6语法 . 因此,我希望 submodule.ts 中有类似的内容:

import {common} from '/utilities/common';

根 / 的位置是 app/src/ ,因为这是找到 tsconfig 的位置 . 是的, app/src/utilities/common.ts 确实导出名为 common 的模块 .

问题是我得到“找不到模块'/ utilities / common'”错误 . 我尝试过各种各样的事情:

utilities/common

/src/utilities/common

/app/src/utilities/common

这些都不起作用 . ../utilities/common 的相对路径确实有效,但常见模块的相对路径是维护的噩梦 .

值得注意的是,我刚刚从TS 1.5更新到1.6:使用 utilities/common 曾在1.5中工作过 . 然而,我在1.6音符中找不到任何关于这些线路的突破性变化 .

我提到 gulpfile.ts 和其他文件夹,因为最终我希望Gulp从 src 获取TS文件并将编译后的JS文件放在 bin 中 . 我有理由相信我已经使用 gulp-typescript 为此正确配置了Gulp,但为了完成起见,这里是我的 tsconfig.json 和 gulpfile.js .

tsconfig.json

{

"compilerOptions": {

"module": "commonjs",

"target": "es5",

"experimentalDecorators": true,

"emitDecoratorMetadata": true,

"noEmitOnError": true

},

"filesGlob": [

"./**/*.ts",

"!./typings/**/*.ts"

]

}

gulpfile.js

var gulp = require('gulp');

var ts = require('gulp-typescript');

var less = require('gulp-less');

var sourcemaps = require('gulp-sourcemaps');

var merge = require('merge2');

var path = require('path');

var tsProject = ts.createProject('src/tsconfig.json', { noExternalResolve: true });

gulp.task('html', function () {

gulp.src([

'src/**/*.html',

])

.pipe(gulp.dest('bin'));

});

gulp.task('typescript', function () {

tsProject.src()

.pipe(sourcemaps.init())

.pipe(ts(tsProject))

.js

.pipe(sourcemaps.write())

.pipe(gulp.dest('bin'));

});

gulp.task('less', function () {

gulp.src([

'src/**/*.less',

])

.pipe(sourcemaps.init())

.pipe(less())

.pipe(sourcemaps.write())

.pipe(gulp.dest('bin'))

});

gulp.task('default', ['html', 'typescript', 'less']);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值