我的 index.html 位于名为 wwwroot 的目录中,并且可以通过 locahost:5001 上的浏览器进行访问。当我使用NPM安装了一些软件包时, node_modules 目录与 wwwroot 处于同一级别。
当我链接到文件时,我使用这样的相对路径。
HREF =" ../ node_modules / package_this_or_that / package.min.js"
在我看来,更好的方法是将这些内容传递到 wwwroot 目录并让它们驻留在那里。并非所有包的内容,只是实际使用的文件(跳过readmes等)。
是否有包装?或者是否需要使用构建脚本来完成?
答案 0 :(得分:4)
您不应该像html或cshtml文件那样从前端访问node_modules文件。所以你是对的,你应该将它们复制到wwwroot
文件夹。
您可以使用Tseng comment中链接的grunt
,但我个人更喜欢Gulp
,我认为它更快更容易使用。
您的package.json
文件:
{
"version": "1.0.0",
"name": "asp.net",
"private": true,
"devDependencies": {
"gulp": "3.9.1",
"gulp-cached": "1.1.0",
}
}
然后在项目的根级别创建一个gulpfile.js
,你可以写一些像
var gulp = require('gulp'),
cache = require('gulp-cached'); //If cached version identical to current file then it doesn't pass it downstream so this file won't be copied
gulp.task('default', 'copy-node_modules');
gulp.task('copy-node_modules', function () {
try {
gulp.src('node_modules/**')
.pipe(cache('node_modules'))
.pipe(gulp.dest('wwwroot/node_modules'));
}
catch (e) {
return -1;
}
return 0;
});
最后打开Task Runner Explorer
(如果您使用的是Visual Studio)并执行default
任务或直接执行copy-node_modules
任务。
Gulp非常有用,我建议你探索其他不同的gulp任务。您可以连接和缩小CSS和JS文件,删除注释,甚至可以创建watch
任务,以便在文件更改时立即执行其他任务。