Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在gulpfile中需要另一个文件(在node#u模块中为&"x27;t)_Javascript_Node.js_Gulp_Postcss - Fatal编程技术网

Javascript 在gulpfile中需要另一个文件(在node#u模块中为&"x27;t)

Javascript 在gulpfile中需要另一个文件(在node#u模块中为&"x27;t),javascript,node.js,gulp,postcss,Javascript,Node.js,Gulp,Postcss,我已经使用gulp一段时间了,知道如何导入另一个节点模块,例如 var sass = require('gulp-sass'); 这很好,但是我的gulpfile中充满了代码,我想将这些代码移到一个单独的文件中并“require”。具体来说,我正在编写一个POSTSS插件,当声明为gulpfile中的函数时,我已经可以使用它了。我的问题是如何将我的函数放在一个外部文件中,并像处理节点模块一样需要它。我是否需要“导出”所需文件中的函数?我需要使用ES6模块或类似的东西吗 另一方面,我意识到如果我

我已经使用gulp一段时间了,知道如何导入另一个节点模块,例如

var sass = require('gulp-sass');
这很好,但是我的gulpfile中充满了代码,我想将这些代码移到一个单独的文件中并“require”。具体来说,我正在编写一个POSTSS插件,当声明为gulpfile中的函数时,我已经可以使用它了。我的问题是如何将我的函数放在一个外部文件中,并像处理节点模块一样需要它。我是否需要“导出”所需文件中的函数?我需要使用ES6模块或类似的东西吗


另一方面,我意识到如果我这样做的话,我可能会(A)将其转化为一个合适的节点模块,并将其放在一个私有NPM存储库中,但这似乎是不必要的,或者(B)将其转化为一个合适的gulp插件,但这需要学习如何编写gulp插件以及学习流和其他内容。这两种方法都可能更好,但需要更多的时间,所以我决定暂时保持函数的简单性和局部性

首先创建一个新的js文件(此处
/lib/myModule.js
):

您还可以向模块传递一些参数:

// ./lib/myAwesomeModule.js
var fn1 = function() {
}
module.exports =  function(args) {
    fn1: fn1,
    fn2: function() { 
        // do something with the args variable
    },
}
然后在您的gulpfile中要求它:

//gulpfile.js
var myModule = require('./lib/myModule')

// Note: here you required and call the function with some parameters
var myAwesomeModule = require('./lib/myAwesomeModule')({
    super: "duper",
    env: "development"
});

// you could also have done
/*
var myAwesomeModuleRequire = require('./lib/myAwesomeModule')
var myAwesomeModule = myAwesomeModuleRequire({
    super: "duper",
    env: "development"
});
*/

gulp.task('test', function() {
   gulp.src()
    .pipe(myModule.fn1)
    .pipe(myAwesomeModule.fn1)
    .gulp.dest()
}

首先创建一个新的js文件(此处
/lib/myModule.js
):

您还可以向模块传递一些参数:

// ./lib/myAwesomeModule.js
var fn1 = function() {
}
module.exports =  function(args) {
    fn1: fn1,
    fn2: function() { 
        // do something with the args variable
    },
}
然后在您的gulpfile中要求它:

//gulpfile.js
var myModule = require('./lib/myModule')

// Note: here you required and call the function with some parameters
var myAwesomeModule = require('./lib/myAwesomeModule')({
    super: "duper",
    env: "development"
});

// you could also have done
/*
var myAwesomeModuleRequire = require('./lib/myAwesomeModule')
var myAwesomeModule = myAwesomeModuleRequire({
    super: "duper",
    env: "development"
});
*/

gulp.task('test', function() {
   gulp.src()
    .pipe(myModule.fn1)
    .pipe(myAwesomeModule.fn1)
    .gulp.dest()
}

首先,您必须在文件末尾添加
export default

然后要使用它,请编写
从“gulp”导入gulp


如果出现错误消息,请使用NPM安装
babel core
babel-preset-es2015
,并在
.babelrc
配置文件中添加一个预设
“预设”:[“es2015”]

首先,您必须在文件末尾添加
导出默认值

然后要使用它,请编写
从“gulp”导入gulp


如果出现错误消息,请使用NPM安装
babel core
babel-preset-es2015
,并在
.babelrc
配置文件中添加一个预设
“presets”:[“es2015”]

我通过安装解决了我的问题:

npm i babel插件添加模块导出


然后我添加了“插件”:[[“添加模块导出”]。babelrc我通过安装来解决我的问题:

npm i babel插件添加模块导出


然后我添加了“插件”:[[“添加模块导出”].babelrc

关于
要求('./your_文件夹/your_文件')
这听起来很简单,但如果我这样做会发生什么?require()是一个gulp函数,还是一个新的javascript函数,因为我们使用的是更新的javascript版本,所以可以工作?如果我使用var myfunction-require(“…”);ai如何确保我的内部函数被分配给变量?回答我自己的问题,module.exports和require()似乎是节点函数,它们不属于gulp,也不是本机javascript函数。如果
require('./your_folder/your_file')
听起来很简单,但如果我这样做会发生什么?require()是一个gulp函数,还是一个新的javascript函数,因为我们使用的是更新的javascript版本,所以可以工作?如果我使用var myfunction-require(“…”);ai如何确保我的内部函数被分配给变量?回答我自己的问题,module.exports和require()似乎是节点函数,它们不属于gulp,也不是本机javascript函数。这看起来正是我需要的。所以说我必须等3分钟才接受你的答案。如果我只想返回一个函数,那么我只需要返回一个函数,它将被分配给我的变量。是的,您只需要执行
module.exports=function(args){}
。看,这正是我需要的。所以说我必须等3分钟才接受你的答案。如果我只想返回一个函数,那么我只需要返回一个函数,它将被分配给我的变量。是的,您只需要执行
module.exports=function(args){}
。参见编辑