Javascript 在gulpfile中需要另一个文件(在node#u模块中为&"x27;t)
我已经使用gulp一段时间了,知道如何导入另一个节点模块,例如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模块或类似的东西吗 另一方面,我意识到如果我
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){}
。参见编辑