我怎样才能从这个项目中删除凉亭,并用yarn(noob)使用requirejs?

我怎样才能切换这个避免使用凉亭?

我第一次安装了yeoman,knockout的发电机使用了凉亭。 现在我读了bower的支持是有限的,而bootstrap使用了popper.js,在v2中会弃用对bower的支持。 我现在想避免头痛,同时学习。

RequireJS和每个客户端库都在/src/bower_modules

如果我使用npm或yarn安装bootstrap,它会将它们安装在浏览器无法访问的/node_modules 。 然后,我使用/src/bower_modules将dist文件夹传输到my /src/bower_modules文件夹?

文件夹结构:

 /src/ |--bower_modules/ |--app/ |--require.config.js /node_modules/ /gulpfile.js 

gulpfile.js:

 var requireJsRuntimeConfig = vm.runInNewContext(fs.readFileSync('src/app/require.config.js') + '; require;'), requireJsOptimizerConfig = merge(requireJsRuntimeConfig, { out: 'scripts.js', baseUrl: './src', name: 'app/startup', paths: { requireLib: 'bower_modules/requirejs/require' }, include: [ 'requireLib', 'components/nav-bar/nav-bar', 'components/home-page/home', 'text!components/about-page/about.html' ], insertRequire: ['app/startup'], bundles: { // If you want parts of the site to load on demand, remove them from the 'include' list // above, and group them into bundles here. // 'bundle-name': [ 'some/module', 'another/module' ], // 'another-bundle-name': [ 'yet-another-module' ] } }), transpilationConfig = { root: 'src', skip: ['bower_modules/**', 'app/require.config.js'], babelConfig: { modules: 'amd', sourceMaps: 'inline' } }, babelIgnoreRegexes = transpilationConfig.skip.map(function(item) { return babelCore.util.regexify(item); }); 

应用程序/ require.config.js:

 var require = { baseUrl: ".", paths: { "bootstrap": "bower_modules/bootstrap/js/bootstrap.min", "crossroads": "bower_modules/crossroads/dist/crossroads.min", "hasher": "bower_modules/hasher/dist/js/hasher.min", "popper": "bower_modules/popper.js/dist/popper", "jquery": "bower_modules/jquery/dist/jquery", "knockout": "bower_modules/knockout/dist/knockout", "knockout-projections": "bower_modules/knockout-projections/dist/knockout-projections", "signals": "bower_modules/js-signals/dist/signals.min", "text": "bower_modules/requirejs-text/text" }, shim: { "bootstrap": { deps: ["popper", "jquery"] } } }; 

旁注:问题的根源是,我需要popper bootstrap和bootstrasp.bundle不包括在凉亭版本看来。 波普尔也不喜欢凉亭,不会支持很长时间。 我也有多个错误试图包括它。 我也想学习这个好方法,因为凉亭不会很久,所以我不介意不用它。

Bower最近发布了一个关于这个的博客: https : //bower.io/blog/2017/how-to-migrate-away-from-bower/ 。 关键要点如下:

  1. 手动将bower.json任何包bower.json Bower和NPM中可用的package.json
  2. 对于任何只能通过Bower使用的物品,您可以使用凉爽的 NPM包装来安装NPM而不是Bower
  3. 编写一个任务运行脚本(Grunt / Gulp / etc …)将包(s)文件移动到您的dist目录

像这样的东西应该这样做。

gulp.task('injectNpmPackages', function () { return gulp.src([ path.join('/node_modules/my-package/build/my-package.min.js') ]) .pipe(gulp.dest('/dist/vendor/')); });