- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
您期望发生什么?安装 ts-node 后给定 .ts 文件时的正常 gulp 操作
到底发生了什么?
[10:24:59] Requiring external module ts-node/register
.\gulpfile.ts:3
import { __awaiter, __generator, __read, __spread } from "tslib";
^^^^^^
SyntaxError: Cannot use import statement outside a module
at Module._compile (internal/modules/cjs/loader.js:891:18)
...
如果我 tsc 我的 gulpfile.ts,那么 gulp 可以完美地处理转译后的输出。只有当我直接给 gulp gulpfile.ts 时,它才会窒息。如果我的文件包含任何导入语句,则标记我的第一条语句(即使它是注释)。
我正在使用 import { src, dest, series, parallel } from 'gulp';
(见下面的示例)而不是 const { src, dest, series, parallel } = require('gulp');
因为 require() 是一个无类型的 nodejs 函数 (string) => any
,丢失所有打字信息。我的 gulpfile 中可能存在各种类型错误而不被发现,这违背了将其写入 TS 的目的。
通过下面的导入语句,VSCode 立即检测到我的错误:
src(srcFiles)
.pipe<NodeJS.ReadWriteStream>(newer({dest: home, ext: '.js'}))
.pipe<NodeJS.ReadWriteStream>(sourcemaps.init())
.pipe<NodeJS.ReadWriteStream>(ts({
lib: ['es2016', 'dom']
, removeComments: true
}))
.pipe(uglify)
.pipe<NodeJS.ReadWriteStream>(sourcemaps.write('.')) // sourcemap as separate file
.pipe(dest(home))
但没有打字,我花了一个星期才注意到哪里出错了。
实际上,如果我更改了所有 require()
正确输入的语句 import
语句,那么我就不需要手动将类型提供给 pipe<T>()
对它们进行正确的类型检查。
我已经为这些 tsconfig.json 选项尝试了许多不同的值组合:
"compilerOptions": {
"allowSyntheticDefaultImports": true,
"module": "esnext",
"moduleResolution": "node",
}
ts-node 安装在本地。包.json:
"devDependencies": {
"ts-node": "8.8.1",
"tslib": "^1.11.1",
"typescript": "^3.8.3"
}
唯一的出路是使用 gulp 将我的 gulpfile.ts 转换为 gulpfile.js 并启动第二个 gulp 来处理输出。但这听起来很复杂。
请发布您的 gulpfile 示例(最好减少到不起作用的部分) gulp 文件.ts:
import { src, dest, series, parallel } from 'gulp';
import * as uglify from 'gulp-uglify';
您使用的是什么版本的 gulp?
CLI version: 2.2.0
Local version: 4.0.2
您使用的是什么版本的 npm 和 node?
yarn -v
1.22.4
ts-node -v
ts-node v3.3.0
node v12.15.0
typescript v2.5.3
npm -v
6.7.0
最佳答案
我遇到了一个非常相似的错误:
/project/gulpfile.ts:1
import gulp from 'gulp'; // or import * as gulp from 'gulp'
^^^^
SyntaxError: Unexpected identifier
出现该错误是因为gulp与tsconfig.json
文件中"esnext"
的module
值不兼容。在某些情况下,您可以更改或删除此条目,但在使用 create-react-app 时,它将在下次运行时覆盖您的编辑。
您可以通过将 ts-node
block 添加到您的 tsconfig.json
文件来专门为 ts-node 指定自定义编译器选项来解决此问题,例如:
{
"compilerOptions": {
"module": "esnext"
},
"ts-node": {
"compilerOptions": {
"module": "commonjs"
}
}
}
通过此更改,您应该能够通过运行 gulp
来运行您的 gulpfile.ts
。
关于typescript - gulpfile.ts 因任何导入语句而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60923563/
我需要在当前 gulp 文件中的“默认”任务之前运行另一个 gulp 文件。有没有针对这种情况的 gulp 插件。 最佳答案 您可以使用 child_process.exec(...) 使用 CLI
我的 gulpfile 中有一个特定任务与其他任务隔离,并且永远不需要作为其余构建过程的一部分运行。我想把它放在一个单独的 gulpfile 中并自行执行。 如何将 gulp 与具有自定义名称的 gu
/* # Copyright IBM Corp. All Rights Reserved. # # SPDX-License-Identifier: Apache-2.0 */ const requi
也许我的方法有问题,但我有以下情况: 我有一个包含 gulpfile 的 component-a。它的一项任务(例如构建)构建组件并在 dist 文件夹中创建一个组合的 js 文件 我有一个包含 gu
文档指出应该自动检测 gulp 和 jake 文件。我在打开的文件夹的根目录中有一个 gulpfile.js,但是当我尝试运行任务时,它没有被自动检测并列在任务列表中。我错过了什么吗? 最佳答案 gu
所以我正在尝试使用 sass 设置基本的 gulp 工作流程,但我遗漏了一些东西,但我找不到它。我在网上搜索了一个带有 dist/src 文件夹的工作流示例,没有人会一步一步地告诉你事情是如何以及为什
var gulp = require('gulp'); var sass = require('gulp-sass'); gulp.task('sass', done => { gulp.sr
我想通过 Gulp 在我的项目中实现非常简单的任务链: 复制所有文件; 用值替换一些占位符; 缩小一些文件; 为了这些目的,我创建了 gulpfile 来完成这样的主要任务: gulp.task(ta
所以我正在处理的这个站点中有两个 gulpfile,一个用于整个项目,它只监视和编译 sass,另一个位于 Foundation Emails 项目中,该项目保存在项目的子目录中。当我尝试在此 Fou
您期望发生什么?安装 ts-node 后给定 .ts 文件时的正常 gulp 操作 到底发生了什么? [10:24:59] Requiring external module ts-node/regi
我正在尝试运行 Aurelia skeleton-es2016-asp.net5 演示。我正在按照阅读我的步骤进行操作。我打开一个命令框并运行 npm install gulp 这似乎有效然而,嗯,我
您期望发生什么?安装 ts-node 后给定 .ts 文件时的正常 gulp 操作 到底发生了什么? [10:24:59] Requiring external module ts-node/regi
我正在尝试运行 Aurelia skeleton-es2016-asp.net5 演示。我正在按照阅读我的步骤进行操作。我打开一个命令框并运行 npm install gulp 这似乎有效然而,嗯,我
当用户提供的任务不在 gulpfile 中时,是否有任何方法可以运行特定任务。 例如,如果用户运行 gulp build 而 build 任务不在 gulpfile 中,那么一个特定的任务(或默认任务
我创建了一个带参数的简单任务: gulp.task("js", () => { let stream = gulp .src("./src/**/*.js", { base:
我正在尝试使用 autoprefixer、sass 和 livereload 运行一个 gulpfile。我花了一个晚上,但我无法运行它们,它到处爆炸 T.T 任何人都可以提供安装这些插件的教程或 g
我喜欢 gulpjs,但我遇到了一个问题,我的 gulpfile.js 变得非常非常大。 我进行了相当广泛的搜索,但很难找到与此相关的资源,但是是否可以将 gulpfile.js 拆分为多个较小的 j
有什么方法可以将变量从 gulpfile 传递到前端脚本吗? 我正在尝试发出命令行部署,并根据我是否运行进行变量更改:“gulp build --development”或“gulp build --
我的 gulpfile.js 与项目文件夹位于同一文件夹中。我正在尝试将所有文件夹和文件复制到 dist/: // copy all files in current dir gulp.src("
在我的 gulpfile 中,index.js 得到处理,提取需求,并吐出 bundle.js。问题是,即使更新了 requiredfile.js ,我也需要触发更新。这是我的代码: var brow
我是一名优秀的程序员,十分优秀!