H. *_*lyn 14 asp.net-mvc sass gulp
我总是遇到CSS代码问题,所以现在我总是使用SaSS代码.但我的问题是如何将SaSS用于ASP.NET MVC应用程序?
我试过尝试使用Gulp任务.我用过这个命令
npm init
npm install --save gulp
npm install --save gulp-sass
Run Code Online (Sandbox Code Playgroud)
这是我的package.json
档案:
{
"name": "markeonline",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "Hein Pauwelyn",
"license": "ISC",
"dependencies": {
"gulp": "^3.9.1",
"gulp-sass": "^3.1.0"
}
}
Run Code Online (Sandbox Code Playgroud)
这里是 gulpfile.js
var gulp = require("gulp"),
sass = require("gulp-sass");
// other content removed
gulp.task("sass", function () {
return gulp.src('./**/*.scss')
.pipe(sass())
.pipe(gulp.dest(project.webroot + './MarkeOnline.Website/Content/css'));
});
Run Code Online (Sandbox Code Playgroud)
这是我的项目结构:
如果我使用下面的命令,此代码会给我下一个错误:
gulp sass
Run Code Online (Sandbox Code Playgroud)
ReferenceError:未定义项目
Run Code Online (Sandbox Code Playgroud)[17:50:58] ReferenceError: project is not defined at Gulp.<anonymous> (D:\Documenten\Howest\Semester 4\05 - Project\MarkeOnlinebis\Project Execution\MarkeOnline\gulpfile.js:9:23) at module.exports (D:\Documenten\Howest\Semester 4\05 - Project\MarkeOnlinebis\Project Execution\MarkeOnline\node_modules\orchestrator\lib\runTask.js:34:7) at Gulp.Orchestrator._runTask (D:\Documenten\Howest\Semester 4\05 - Project\MarkeOnlinebis\Project Execution\MarkeOnline\node_modules\orchestrator\index.js:273:3) at Gulp.Orchestrator._runStep (D:\Documenten\Howest\Semester 4\05 - Project\MarkeOnlinebis\Project Execution\MarkeOnline\node_modules\orchestrator\index.js:214:10) at Gulp.Orchestrator.start (D:\Documenten\Howest\Semester 4\05 - Project\MarkeOnlinebis\Project Execution\MarkeOnline\node_modules\orchestrator\index.js:134:8) at C:\Users\hein_\AppData\Roaming\npm\node_modules\gulp\bin\gulp.js:129:20 at _combinedTickCallback (internal/process/next_tick.js:67:7) at process._tickCallback (internal/process/next_tick.js:98:9) at Module.runMain (module.js:592:11) at run (bootstrap_node.js:394:7) events.js:160 throw er; // Unhandled 'error' event ^ Error: node_modules\node-sass\test\fixtures\depth-first\_vars.scss Error: Undefined variable: "$import-counter". on line 1 of node_modules/node-sass/test/fixtures/depth-first/_vars.scss >> $import_counter: $import_counter + 1; -----------------^ at options.error (D:\Documenten\Howest\Semester 4\05 - Project\MarkeOnlinebis\Project Execution\MarkeOnline\node_modules\node-sass\lib\index.js:291:26)
Rya*_*mes 12
尝试使用Web Compiler插件,这是我用来在MVC中编译SCSS的工具。
一个Visual Studio扩展,可编译LESS,Sass,JSX,ES6和CoffeeScript文件。
hay*_*awe 11
我认为您可以使用其他更简单的方法。
在您的NuGet管理器中执行此步骤。
加 Microsoft.AspNet.Web.Optimization
加 BundleTransformer.SassAndScss
LibSassHost.Native.win-x64
如果使用系统64位,请添加。
LibSassHost.Native.win-x86
在methode中BundleConfig.cs
添加此代码RegisterBundles
。
var nullBulider = new NullBuilder();
var nullOrderer = new NullOrderer();
BundleResolver.Current = new CustomBundleResolver();
var commonStyleBundle = new CustomStyleBundle("~/Bundle/sass");
commonStyleBundle.Include("~/css/main.scss");
commonStyleBundle.Orderer = nullOrderer;
bundles.Add(commonStyleBundle);
Run Code Online (Sandbox Code Playgroud)
在您的项目中添加CSS文件夹,并在其中添加main.scss
文件表。
在您看来,您需要使用System.Web.Optimization
。
@using System.Web.Optimization
Run Code Online (Sandbox Code Playgroud)
并链接您的样式表
@Styles.Render("~/Bundle/sass").
Run Code Online (Sandbox Code Playgroud)
在中,Global.asax
我们需要在中添加此行Application_Start()
。
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
Run Code Online (Sandbox Code Playgroud)
或者,如果您使用MVC Templet,您可能会在班上已经找到它。
这就是您main.scss
的工作。
这是将 Sass 添加到 Mvc 应用程序的方法:
将 css 文件添加到包中。
bundles.Add(new StyleBundle("~/Content/css").Include(
"~/Content/bootstrap/main.css",
"~/Content/site.css"));
Run Code Online (Sandbox Code Playgroud)如果需要自定义bootstrap,在bootstrap.scss所在的文件夹中添加一个main.scss文件。然后使用 Web Compiler 编译它。
主文件:
/* import the necessary Bootstrap files */
@import "_functions.scss";
@import "_variables.scss";
/* make changes to the !default Bootstrap variables */
$body-color: green;
/* finally, import Bootstrap to set the changes! */
@import "bootstrap.scss";
Run Code Online (Sandbox Code Playgroud)
此示例包含所有文件,但请确保仅添加使 css 更小所需的文件。
归档时间: |
|
查看次数: |
14762 次 |
最近记录: |