如何设置nodejs npm的本地reporsitory?

时间:2017-09-06 11:06:46

标签: javascript node.js npm

据我了解node js构建过程,您应该调用以下目标:

  1. 调用npm install创建文件夹node_modules并将package.json中的所有依赖项放入其中。
  2. [用于UI开发]运行一些目标,将所有文件(包括node_modules)移动到dist文件夹。
  3. 运行node appFile.js
  4. 之类的内容

    我来自具有类似依赖概念的Maven世界的节点js开发,但它没有"安装"所有依赖项都进入项目文件夹。它首先将它们放入本地存储库,并仅在调用target目标时移动到项目distpackage analog)文件夹。为什么它更好:

    1. 所有项目都可以在一个文件夹中共享相同的文件。例如。没有必要每次都将相同的依赖项复制到项目文件夹。就在您需要打包(构建)项目时
    2. 您不需要每次都下载依赖项,只需从local repository文件夹中复制。
    3. IDE不需要更新打*_folders,因此开发过程要快得多。
    4. 所以问题是 - 节点j是否支持以类似的方式组织项目以避免为每个项目创建十几个node_modules

1 个答案:

答案 0 :(得分:1)

第一

  

nodejs是否支持orginize项目,以避免为每个项目创建12个node_modules?

支持。

您正在搜索的答案是'g' npm install

示例:

    private void GridViewStudentsList_RowValidated(object sender, DataGridViewCellEventArgs e)

 {


        try

          {

            BindingSource bindingSource = (BindingSource)GridViewStudentsList.DataSource;

            DataSet changes = (DataSet)bindingSource.DataSource;

            changes.GetChanges();

            if (changes != null)
            {
                OracleConnection con = new OracleConnection(connection);
                con.Open();
                OracleDataAdapter adapter = new OracleDataAdapter("select * from students_list",con );
                GridViewStudentsList.EndEdit();
               OracleCommandBuilder mcb = new OracleCommandBuilder(adapter);

                adapter.UpdateCommand = mcb.GetUpdateCommand(true);


                adapter.Update(changes,"students_list");
               changes.AcceptChanges();

                MessageBox.Show("Cell Updated");
               // GridViewStudentsList.EndEdit();
                con.Close();
                return;
            }


        }

        catch (Exception ex)
        {
            MessageBox.Show(ex.StackTrace);
        }
    }

将全局创建节点模块并允许您的节点应用程序找到此模块,而无需将其安装在根文件夹

但是让我警告你,如果包系统存在,那是因为版本控制问题。有时对于不同的项目应用程序,您需要具有不同的软件包版本,而使用-g则不能

第二

  
      
  1. [for ui development]运行一些目标,将所有文件(包括node_modules)移动到dist fodler。
  2.   

它实际上并不是“移动”,您描述的这个过程通常是自动脚本,例如'gulp'甚至'grunt',它们允许您以不同的方式修改项目。

  1. 通常,它用于
    • uglify(/dev/myscript.js成为/dist/myscript.min.js),
    • concat,则
    • 过滤
    • jshint 还有很多。