Javascript 使用 npm 和 grunt 的开发和生产项目结构

Javascript project structure for dev and production using npm and grunt

我正在尝试构建项目中的 javascript 文件。我已经使用 NPM 来管理模块,并计划使用 Grunt 来连接和压缩 js 和 css 文件以进行部署。

我目前正在使用以下结构

-[project root]   
-- [node modules] :packages such as requirejs, jquery, semantic-ui etc using npm  

--[war]  
---[Dev]   
----[css] multiple css files from modules (Question 2:?)  
----[js] multiple js files from modeuls (Question 2:?)

- Gruntfile.js :for concatenate and compress    
---[Production] -   
----[css]:This is where the compressed and concatenated css files are kept  
----[js] :This is where the compressed and concatenated js files are kept  

问题1:上述构建项目的方法是否正确?允许管理包、开发和生产文件的任何其他建议。

问题 2:NPM 或其他工具是否允许我从 [node modules] 文件夹中提取 js 和 css 文件并将它们放置到 (dev>>css 或 dev> >js) 文件夹 ?如果手动执行此操作,我该如何跟踪版本?好像我在这里遗漏了一些东西,必须有更好的解决方案。

Suggestions/recommendations/comments 非常感谢。

谢谢

这个问题对于 SO 格式来说有点太宽了,但总的来说你的结构很好。您无需从 node_modules 复制文件,而是在 js 下拥有您自己的 JavaScript 个文件,并且您 import/require 将它们复制到您自己的文件中。

//foo.js
//ES6 style imports
import {Foo as Bar} from "biz";

//Common JS style requires
var Bar = require("biz");

//AMD style requires
require(["biz"], function (Bar) {

如果您想在浏览器中使用您的 node_modules,您需要使用 Browserify, Webpack, Rollup or similar. To automate this, you can easily use Grunt tasks such as grunt-browserifygrunt-watch.

将它们捆绑在一起

同样适用于您的 CSS 文件:您将自己的文件存储在 css 下,如果您需要来自 node_modules 的 CSS 文件,您可以将它们导入到您自己的文件中文件:如果您正在使用一些预处理器(例如 SASS 或 LESS),预处理器通常会在构建 .css 文件时内联您的导入。如果您只是使用普通 .css 文件,请参阅 grunt-css-import 例如。