Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.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
是否可以使用Webpack&;将NODE_ENV param注入sass文件;sass装载机?_Sass_Webpack_Libsass_Webpack Style Loader_Sass Loader - Fatal编程技术网

是否可以使用Webpack&;将NODE_ENV param注入sass文件;sass装载机?

是否可以使用Webpack&;将NODE_ENV param注入sass文件;sass装载机?,sass,webpack,libsass,webpack-style-loader,sass-loader,Sass,Webpack,Libsass,Webpack Style Loader,Sass Loader,我正在尝试将NODE_ENV注入到一个sass文件中,这样我就可以为dev/prod ENV提供不同的输出,并且有一个sass函数,其中有一个条件: @if(NODE_ENV=='prod'){} 我的webpack.config如下所示: module: { loaders: [{ test: /\.scss$/, loader: "style-loader!raw-loader!sass-loader?includePaths[]=" + path.r

我正在尝试将NODE_ENV注入到一个sass文件中,这样我就可以为dev/prod ENV提供不同的输出,并且有一个sass函数,其中有一个条件:
@if(NODE_ENV=='prod'){}

我的webpack.config如下所示:

module: {
    loaders: [{
        test: /\.scss$/,
        loader: "style-loader!raw-loader!sass-loader?includePaths[]=" + path.resolve(__dirname, "./node_modules/compass-mixins/lib")
    }]
}
我尝试将一个数据参数传递给加载程序,但没有任何效果。
非常感谢您的帮助

查看了
sass加载程序
源代码,它似乎不支持任何允许您插入变量的选项,因此不可能采用这种方式


我不认为您能够像这样在Sass中“插入”一个env/build-time变量,但是您可以通过创建多个Sass文件并根据条件要求一个您想要的(来自js源代码)来获得相同的行为。请注意,webpack解析代码中逻辑的能力有限,但是--如果您想
要求
条件中的某些内容,则条件必须检查布尔值才能工作。因此,如果您执行
if(NODE_ENV==='production'){…}否则{…}
webpack将在所有这些条件下处理所有要求。如果您执行了类似于
If(IS_PROD_ENV){…}else{…}
的操作,其中条件值是布尔值,则webpack将遵循条件逻辑,只处理正确的
要求
UglifyJS
插件将为您删除不必要的条件分支。

这是直接从sass加载程序repo中获得的代码

webpack.config.js

。。。
萨斯洛德:{
数据:“$env:+process.env.NODE_env+”;”
}
...

您可以尝试
sass加载程序的
prependData
选项
prependData
还接受一个
函数
,该函数接收
loaderContext
,您可以使用该函数使其更具动态性。一旦你实现了这一点;你可以:

@if ($env == 'prod') {}
更多信息请点击此处:


祝你好运…

我能在没有弹出我的应用程序的情况下完成此操作吗?嗨@FabianoLothor,你能回答你的问题吗?使用create react应用程序我无法手动配置webpack,它是预配置的。只有当我决定退出应用程序时,我才能设置网页包。@FabianoLothor,你可以试试。参考博客:。祝你好运…我可以在不弹出应用程序的情况下完成此操作吗?
@if ($env == 'prod') {}