在项目之间重用 Gulp 个任务
Reusing Gulp tasks between projects
我正在 GitHub 上处理一组项目,我想在这些项目之间共享 Gulp 构建管道。一切都使用 Babel,包括 Gulp 任务本身。我要共享的通用 Gulp 文件需要 Babel,然后所有任务都位于一个文件夹中 - 通用文件如下所示:
require("babel-core/register");
require("require-dir")("gulp/tasks");
然后我尝试将公共管道打包到 NPM 包中,并将其作为 devDependency 添加到另一个项目。然后我的项目 gulpfile 根据通用设置如下所示:
require("./node_modules/cratis.client.javascript.setup/gulpfile");
当我 运行 这似乎加载 Babel 然后开始加载我的任务,但立即失败:
(function (exports, require, module, __filename, __dirname) { import gulp from "gulp";
^^^^^^
SyntaxError: Unexpected token import
at Object.exports.runInThisContext (vm.js:53:16)
这表明 Babel 没有加载,我觉得这很奇怪 - 因为我希望看到与第一个 require 相关的加载错误。
无法真正弄清楚这里发生了什么,所以我决定尝试一条不同的道路; Git 个子模块。
我将公共管道项目作为 Git 子模块添加到项目中,并包含了与子模块位置相关的 gulpfile。
这似乎根本不起作用 - 基本上找不到文件。
其他人在做什么?我还没有真正找到任何好的例子。
如果 Git 子模块路径是正确的,我希望看到 "node_modules" 也被共享并且是一种维护它的简单方法。
可能您忘记包含 Babel 依赖项以使模块导入正常工作。
在这里查看这个项目 https://github.com/andreasonny83/mdl-starter-kit
你需要 npm install --save-dev babel-core babel-loader babel-preset-es2015 和 babel-register
好的,我想我终于发现了问题所在。 npm 依赖项仅安装到父项目 "dependencies",而不是 "devDependencies"。因此,因为在您的 npm cratis.client.javascript.setup
中您只定义了 devDependencies,thore 将不会与您的 https://github.com/Cratis/Client.JavaScript.Core
项目中的 npm install
一起安装。要解决此问题,只需将 cratis.client.javascript.setup
中的所有 devDepencies 移动到 "dependencies".
下
我正在 GitHub 上处理一组项目,我想在这些项目之间共享 Gulp 构建管道。一切都使用 Babel,包括 Gulp 任务本身。我要共享的通用 Gulp 文件需要 Babel,然后所有任务都位于一个文件夹中 - 通用文件如下所示:
require("babel-core/register");
require("require-dir")("gulp/tasks");
然后我尝试将公共管道打包到 NPM 包中,并将其作为 devDependency 添加到另一个项目。然后我的项目 gulpfile 根据通用设置如下所示:
require("./node_modules/cratis.client.javascript.setup/gulpfile");
当我 运行 这似乎加载 Babel 然后开始加载我的任务,但立即失败:
(function (exports, require, module, __filename, __dirname) { import gulp from "gulp";
^^^^^^
SyntaxError: Unexpected token import
at Object.exports.runInThisContext (vm.js:53:16)
这表明 Babel 没有加载,我觉得这很奇怪 - 因为我希望看到与第一个 require 相关的加载错误。
无法真正弄清楚这里发生了什么,所以我决定尝试一条不同的道路; Git 个子模块。 我将公共管道项目作为 Git 子模块添加到项目中,并包含了与子模块位置相关的 gulpfile。 这似乎根本不起作用 - 基本上找不到文件。
其他人在做什么?我还没有真正找到任何好的例子。
如果 Git 子模块路径是正确的,我希望看到 "node_modules" 也被共享并且是一种维护它的简单方法。
可能您忘记包含 Babel 依赖项以使模块导入正常工作。 在这里查看这个项目 https://github.com/andreasonny83/mdl-starter-kit 你需要 npm install --save-dev babel-core babel-loader babel-preset-es2015 和 babel-register
好的,我想我终于发现了问题所在。 npm 依赖项仅安装到父项目 "dependencies",而不是 "devDependencies"。因此,因为在您的 npm cratis.client.javascript.setup
中您只定义了 devDependencies,thore 将不会与您的 https://github.com/Cratis/Client.JavaScript.Core
项目中的 npm install
一起安装。要解决此问题,只需将 cratis.client.javascript.setup
中的所有 devDepencies 移动到 "dependencies".